http://acm.hdu.edu.cn/showproblem.php?pid=1084

What Is Your Grade?

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 9580    Accepted Submission(s): 2940

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
 
不想多解释,水题一道,题没看错就行,这么一道水题我竟wa了很多次,很是忧桑。。。
直接附上代码
 #include <stdio.h>
#include <stdlib.h>
#include <string.h> #define N 110 using namespace std; struct st
{
int id, x, h, y;
} node[N]; int cmp(const void *a, const void *b)
{
st *s1 = (st *)a, *s2 = (st *)b;
if(s1->x == s2->x)
return s1->h - s2->h;
else
return s2->x - s1->x;
} int cmp1(const void *a, const void *b)
{
return *(int *)a - *(int *)b;
} int main()
{
int i, a1, a2, a3, a4, n, h, m, s;
while(scanf("%d", &n), n != -)
{
memset(node, , sizeof(node));
a1 = a2 = a3 = a4 = ;
for(i = ; i < n ; i++)
{
scanf("%d", &node[i].x);
scanf("%d:%d:%d", &h, &m, &s);
node[i].h = h * + m * + s;
node[i].id = i;
if(node[i].x == )
a1++;
else if(node[i].x == )
a2++;
else if(node[i].x == )
a3++;
else if(node[i].x == )
a4++;
}
qsort(node, n, sizeof(node[]), cmp);
a1 /= , a2 /= , a3 /= , a4 /= ;
for(i = ; i < n ; i++)
{
if(node[i].x == )
node[i].y = ;
else if(node[i].x == )
{
if(a4 != )
{
node[i].y = ;
a4--;
}
else
node[i].y = ;
}
else if(node[i].x == )
{
if(a3 != )
{
node[i].y = ;
a3--;
}
else
node[i].y = ;
}
else if(node[i].x == )
{
if(a2 != )
{
node[i].y = ;
a2--;
}
else
node[i].y = ;
}
else if(node[i].x == )
{
if(a1 != )
{
node[i].y = ;
a1--;
}
else
node[i].y = ;
}
else
node[i].y = ;
}
qsort(node, n, sizeof(node[]), cmp1);
for(i = ; i < n ; i++)
printf("%d\n", node[i].y);
printf("\n"); }
return ;
}

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

  1. HDU 1084 What Is Your Grade?(排序)

    题目在这里:1084 题目描述: “Point, point, life of student!” This is a ballad(歌谣)well known in colleges, and yo ...

  2. HDU 1084:What Is Your Grade?

    Problem Description "Point, point, life of student!" This is a ballad(歌谣)well known in col ...

  3. 杭电OJ—— 1084 What Is Your Grade?

    What Is Your Grade? Problem Description “Point, point, life of student!” This is a ballad(歌谣)well kn ...

  4. HDU 1084 - ACM

    题目不难,但是需要对数据进行处理,我的代码有些冗长,希望以后能改进... 主要思路是先算总的时间,然后进行对比,将做同样题数的前一半的人筛选出来. /状态:AC/ Description “Point ...

  5. HDU 5038 Grade(分级)

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

  6. hdu 5038 求出现次数最多的grade

    http://acm.hdu.edu.cn/showproblem.php?pid=5038 模拟水题 求出现次数最多的grade.如果有多个grade出现的次数一样多,且还有其他的grade,则把这 ...

  7. HDU 5038 Grade北京赛区网赛1005

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5038 解题报告:就是输入n个数w,定义s = 10000 - (100 - w)^2,问s出现频率最高 ...

  8. HDU 5038 Grade

    解题思路:这题最关键的是要读懂题意,If not all the value are the same but the frequencies of them are the same, there ...

  9. hdu 3666 Making the Grade

    题目大意 给出了一列数,要求通过修改某些值,使得最终这列数变成有序的序列,非增或者非减的,求最小的修改量. 分析 首先我们会发现,最终修改后,或者和前一个数字一样,或者和后一个数字一样,这样才能修改量 ...

随机推荐

  1. kafka_2.9.2-0.8.1.1分布式集群搭建代码开发实例

    准备3台虚拟机, 系统是RHEL64服务版. 1) 每台机器配置如下:$ cat /etc/hosts    # zookeeper hostnames:       192.168.8.182    ...

  2. (转载)UITableView的详细讲解

    NSIndexPath类型是用来获取用户选择的indexPath,在别的函数里面,若需要知道用户选择了哪个cell,用上它可以省事很多.不必再去建全局变量section和row. NSIndexPat ...

  3. UVALive 3415 Guardian of Decency(二分图的最大独立集)

    题意:老师在选择一些学生做活动时,为避免学生发生暧昧关系,就提出了四个要求.在他眼中,只要任意两个人符合这四个要求之一,就不可能发生暧昧.现在给出n个学生关于这四个要求的信息,求老师可以挑选出的最大学 ...

  4. C与C++的区别无随时更新

    C没有calss类,只有结构体struct class A;  在C中这样写就是错误的,C没有关键字class C的字符指针不会自动开辟内存空间,必须对这个指针指向的地址手动开辟空间后才可以写入数据. ...

  5. HDU 产生冠军 2094

    解题思路:这题重在分析,可能你知道的越多,这题想得越多,什么并查集,什么有向图等. 事实是,我们会发现,只要找到一个,并且仅有一个的入度为0的点,说明可以找出   冠军.若入度为0的点一个都没有,说明 ...

  6. python 对数函数

    from math import logfrom math import e print e #自然对数print log(e) #log函数默认是以e为底print log(100,10) #以10 ...

  7. 502 Bad Gateway nginx 解决

    打开 /usr/local/php/etc/php-fpm.conf 调大以下两个参数(根据服务器实际情况,过大也不行) <value name=”max_children”>5120&l ...

  8. 锁之“轻量级锁”原理详解(Lightweight Locking)

    大家知道,Java的多线程安全是基于Lock机制实现的,而Lock的性能往往不如人意. 原因是,monitorenter与monitorexit这两个控制多线程同步的bytecode原语,是JVM依赖 ...

  9. app如何节省流量

    前言:“客户端上传时间戳”的玩法,你玩过么?一起聊聊时间戳的奇技淫巧! 缘起:无线时代,流量敏感.APP在登录后,往往要向服务器同步非常多的数据,很费流量,技术上有没有节省流量的方法呢?这是本文要讨论 ...

  10. java 多线程同步

    一.synchronized关键字 同步方法 每个对象都包含一把锁(也叫做监视器),它自动称为对象的一部分(不必为此写任何特殊的代码).调用任何synchronized方法时,对象就会被锁定,不可再调 ...