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. 一行转多行 及多行转一行的 hive语句

      注意 :|,: 是特殊符号,要用 "\\|", "\\;"来表示.   一行转多行 usertags 里面有很多项,每项之间以逗号分隔   create t ...

  2. Fb,tw等emoji相关

    最近处理fb  emoji,查了下相关的资料.记录于此 twitter blog 关于:https://blog.twitter.com/developer/en_us/a/2014/open-sou ...

  3. dubbo通信协议

    对dubbo的协议的学习,可以知道目前主流RPC通信大概是什么情况,本文参考dubbo官方文档 http://dubbo.io/User+Guide-zh.htm dubbo共支持如下几种通信协议: ...

  4. angluarjs ng-repeat 行号

    参考 https://zhidao.baidu.com/question/1882914672116911828.html $index

  5. 132. Palindrome Partitioning II (String; DP)

    Given a string s, partition s such that every substring of the partition is a palindrome. Return the ...

  6. Median(二分+二分)

    Median http://poj.org/problem?id=3579 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1 ...

  7. manacher最长回文序列c++

    算法真心读不懂 #include <iostream>#include<string>#include<cstring> using namespace std;c ...

  8. 用SQL2000还原bak文件

    1.右击SQL Server 2000实例下的“数据库”文件夹.就是master等数据库上一级的那个图标.选择“所有任务”,“还原数据库” 2.在“还原为数据库”中填上你希望恢 复的数据库名字.这个名 ...

  9. 8-导弹拦截一(n^2 and nlogn)

    /*某国为了防御敌国的导弹袭击,研发出一套导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发拦截炮弹能够到达任意的高度,但是以后每一发拦截炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的多 ...

  10. 初学Hadoop之图解MapReduce与WordCount示例分析

    Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...