Problem Description
“Point, point, life of student!”
This is a ballad(歌谣)well
known in colleges, and you must care about your score in this exam too.
How many points can you get? Now, I told you the rules which are used in
this course.
There are 5 problems in this final exam. And I will
give you 100 points if you can solve all 5 problems; of course, it is
fairly difficulty for many of you. If you can solve 4 problems, you can
also get a high score 95 or 90 (you can get the former(前者) only when
your rank is in the first half of all students who solve 4 problems).
Analogically(以此类推), you can get 85、80、75、70、65、60. But you will not pass
this exam if you solve nothing problem, and I will mark your score with
50.
Note, only 1 student will get the score 95 when 3 students have solved 4 problems.
I wish you all can pass the exam!
Come on!
 

Input
Input contains multiple test cases. Each test case contains an
integer N (1<=N<=100, the number of students) in a line first, and
then N lines follow. Each line contains P (0<=P<=5 number of
problems that have been solved) and T(consumed time). You can assume
that all data are different when 0<p.
A test case starting with a negative integer terminates the input and this test case should not to be processed.
 

Output
Output the scores of N students in N lines for each case, and there is a blank line after each case.
 

Sample Input
4
5 06:30:17
4 07:31:27
4 08:12:12
4 05:23:13
1
5 06:30:17
-1
 

Sample Output
100
90
90
95 100

这个题可以说是基数排序的一个简单版,但是我写了将近俩个小时才写出来,实在是水啊。。

#include<stdio.h>
#include<string.h>
void Exchange(int f[100],int n,int m)
{
    int temp;
    temp=f[n];
    f[n]=f[m];
    f[m]=temp;
}
void Sort(int f[100],char time[100][10],int k)
{
    for(int i=0;i<k;i++)
    {
        int p=k-1;
        for(int j=k-1;j>i;j--)
        {
            if(strcmp(time[f[j]],time[f[j-1]])<0)
            {
                Exchange(f,j,j-1);
                p=j;
            }
        }
        if(p==k-1) break;
    }
}
void Score(int score[100],char time[100][10],int solved[100],int n)
{
    int f[100];
    for(int i=1;i<5;i++)
    {
        int k=0;
        for(int j=0;j<n;j++)
        {
            if(solved[j]==i)
            {
                f[k]=j;
                k++;
            }
        }
        Sort(f,time,k);         //对时间进行排序
        for(j=0;j<k/2;j++)
            score[f[j]]=5;
    }
}

void main()
{
    int n;
    char time[100][10];
    int solved[100];
    int score[100];
    while(1)
    {
        scanf("%d",&n);
        if(n<0) return;
        for(int i=0;i<n;i++)
        {
            scanf("%d",&solved[i]);
            scanf("%s",time[i]);
            score[i]=0;
        }
        Score(score,time,solved,n);
        for(i=0;i<n;i++)
        {
            switch (solved[i])
            {
                 case 5 : printf("100\n"); break;
                 case 4 : printf("%d\n",90+score[i]); break;
                 case 3 : printf("%d\n",80+score[i]); break;
                 case 2 : printf("%d\n",70+score[i]); break;
                 case 1 : printf("%d\n",60+score[i]); break;
                 default : printf("50\n");
            }
        }
        printf("\n");
    }
}

What Is Your Grade?的更多相关文章

  1. kaungbin_DP S (POJ 3666) Making the Grade

    Description A straight dirt road connects two fields on FJ's farm, but it changes elevation more tha ...

  2. POJ 3666 Making the Grade

    Description A straight dirt road connects two fields on FJ's farm, but it changes elevation more tha ...

  3. CF719C. Efim and Strange Grade[DP]

    C. Efim and Strange Grade time limit per test 1 second memory limit per test 256 megabytes input sta ...

  4. POJ3666Making the Grade[DP 离散化 LIS相关]

    Making the Grade Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6445   Accepted: 2994 ...

  5. [CareerCup] 15.7 Student Grade 学生成绩

    15.7 Imagine a simple database storing information for students' grades. Design what this database m ...

  6. 英语语法 It all started the summer before second grade when our moving van pulled into her neighborhood

    It all started the summer before second grade when our moving van pulled into herneighborhood It all ...

  7. FPGA speed grade

    Altera的-6.-7.-8速度等级逆向排序,Xilinx速度等级正向排序. 不很严密地说,“序号越低,速度等级越高”这是Altera FPGA的排序方法, “序号越高,速度等级也越高”这是Xili ...

  8. HDU 5038 Grade(分级)

    Description 题目描述 Ted is a employee of Always Cook Mushroom (ACM). His boss Matt gives him a pack of ...

  9. hdu---(5038)Grade(胡搞)

    Grade Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Sub ...

  10. A-Making the Grade(POJ 3666)

    Making the Grade Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4656   Accepted: 2206 ...

随机推荐

  1. Delphi编程实现是否开启“平滑屏幕字体边缘“

    在Windows高级设置中的视觉效果中可以设置是否开启“平滑屏幕字休边缘”,可以通过编程的方式来实现: if SystemParametersInfo(SPI_SETFONTSMOOTHING, 1, ...

  2. KEGG下载某物种最新的版本信息(斑马鱼为例)

    步骤一:打开链接并选择物种 http://www.genome.jp/kegg-bin/get_htext?hsa00001+3101 步骤二:对文件进行解析 步骤三:统计信息 一级结构(6大类): ...

  3. Spring Cloud feign

    Spring Cloud feign使用 前言 环境准备 应用模块 应用程序 应用启动 feign特性 综上 1. 前言 我们在前一篇文章中讲了一些我使用过的一些http的框架 服务间通信之Http框 ...

  4. angularjs动态添加节点时,绑定到$scope中

    <html> <head> <meta charset="utf-8"/> <script src="https://cdn.b ...

  5. toString方法的用法

    public class JLDtoS {   public static void main(String[]args)   {    long a=123;    Long aa=new Long ...

  6. sqlplus下 查看oracle 执行计划

    Microsoft Windows [版本 6.1.7601] 版权所有 (c) Microsoft Corporation.保留所有权利. C:\Users\zhangzheng2 SQL :: C ...

  7. Java 架构师

    “学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会.个人认为看书有两点好处: 1.能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超 ...

  8. C#通过反射获得对象所有属性和值

    C#获得对象的所有属性和值 public void GetPros() { UserInfo userInfo = new UserInfo(); userInfo.ID = ; userInfo.N ...

  9. MEME(Motif-based sequence analysis tools)使用说明

    MEME(Motif-based sequence analysis tools)使用说明 2011-05-27 ~ ADMIN MEME是用于从一堆序列中搜索功能结构域的工具.比如说当你拿到了许多C ...

  10. apt-get clean 清除 apt 的缓存

    #apt-get clean 再 df -h 看看,是不是可用空间增加了几个 G ?