What Is Your Grade?

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

 
Author
lcy
 
     题目不是很难,注意一下输出格式还有一些别的东西就可以了!我下面写的程序貌似长了一点,不过意思明了,凑合着看吧!很久没写了,练练手!
#include <iostream>
#include <algorithm>
using namespace std;
const int SIZE = 101; typedef struct /*结构体,用于存储输入的数据*/
{
int solved; /*解决问题的数目*/
int located; /*学生的位置*/
int h, m, s; /*所花费的时间*/
int soc; /*最终的成绩*/
}time; bool cmp(time &bi1, time &bi2) /*比较函数,用于排序*/
{
if (bi1.h > bi2.h) return false;
else if (bi1.h < bi2.h) return true;
else
{
if (bi1.m > bi2.m) return false;
else if (bi1.m < bi2.m) return true;
else
{
if (bi1.s > bi2.s) return false;
else if (bi1.s < bi2.s) return true;
}
}
} int main()
{
int num;
time stu[SIZE];
time sortArr[4][SIZE];
int p, q , r, k, i;
while((cin >> num) && (num >= 0))
{
p = q = r = k = 0;
for (i = 0; i < num; i++)
{
cin >> stu[i].solved;
scanf ("%d:%d:%d", &stu[i].h, &stu[i].m, &stu[i].s);
stu[i].located = i; /*记录下输入时的位置*/ /*下面的思路就是:分数能处理的就处理,如解决了5道题(100)和0道题(50)
不能处理的话,我们先将该数分类存入一个数组,之后再做处理
*/
if (stu[i].solved == 5)
{
stu[i].soc = 100;
}
if (stu[i].solved == 4)
{
sortArr[0][p] = stu[i];
p++;
}
if (stu[i].solved == 3)
{
sortArr[1][q] = stu[i];
q++;
}
if (stu[i].solved == 2)
{
sortArr[2][r] = stu[i];
r++;
}
if (stu[i].solved == 1)
{
sortArr[3][k] = stu[i];
k++;
}
if (stu[i].solved == 0)
{
stu[i].soc = 50;
}
} if (p >= 1)
{
sort (sortArr[0], sortArr[0] + p, cmp); /*先排序,按照耗时从小到大排序*/
for (i = 0; i < p / 2; i++) /*前半部分得高分*/
{
stu[sortArr[0][i].located].soc = 95;
}
for (; i < p; i++) /*后半部分得低分*/
{
stu[sortArr[0][i].located].soc = 90;
}
}
/*以下类似*/
if (q >= 1)
{
sort (sortArr[1], sortArr[1] + q, cmp);
for (i = 0; i < q / 2; i++)
{
stu[sortArr[1][i].located].soc = 85;
}
for (; i < q; i++)
{
stu[sortArr[1][i].located].soc = 80;
}
} if (r >= 1)
{
sort (sortArr[2], sortArr[2] + r, cmp);
for (i = 0; i < r / 2; i++)
{
stu[sortArr[2][i].located].soc = 75;
}
for (; i < r; i++)
{
stu[sortArr[2][i].located].soc = 70;
}
} if (k >= 1)
{
sort (sortArr[3], sortArr[3] + k, cmp);
for (i = 0; i < k / 2; i++)
{
stu[sortArr[3][i].located].soc = 65;
}
for (; i < k; i++)
{
stu[sortArr[3][i].located].soc = 60;
}
} for (i = 0; i < num; i++)
{
cout << stu[i].soc << endl;
}
cout << endl;
}
system ("pause");
return 0;
}

杭电OJ—— 1084 What Is Your Grade?的更多相关文章

  1. C#利用POST实现杭电oj的AC自动机器人,AC率高达50%~~

    暑假集训虽然很快乐,偶尔也会比较枯燥,,这个时候就需要自娱自乐... 然后看hdu的排行榜发现,除了一些是虚拟测评机的账号以外,有几个都是AC自动机器人 然后发现有一位作者是用网页填表然后按钮模拟,, ...

  2. 杭电oj 2095 & 异或^符号在C/C++中的使用

    异或^符号,在平时的学习时可能遇到的不多,不过有时使用得当可以发挥意想不到的结果. 值得注意的是,异或运算是建立在二进制基础上的,所有运算过程都是按位异或(即相同为0,不同为1,也称模二加),得到最终 ...

  3. 用python爬取杭电oj的数据

    暑假集训主要是在杭电oj上面刷题,白天与算法作斗争,晚上望干点自己喜欢的事情! 首先,确定要爬取哪些数据: 如上图所示,题目ID,名称,accepted,submissions,都很有用. 查看源代码 ...

  4. 杭电oj 4004---The Frog Games java解法

    import java.util.Arrays; import java.util.Scanner; //杭电oj 4004 //解题思路:利用二分法查找,即先选取跳跃距离的区间,从最大到最小, // ...

  5. 『ACM C++』HDU杭电OJ | 1415 - Jugs (灌水定理引申)

    今天总算开学了,当了班长就是麻烦,明明自己没买书却要带着一波人去领书,那能怎么办呢,只能说我善人心肠哈哈哈,不过我脑子里突然浮起一个念头,大二还要不要继续当这个班委呢,既然已经体验过就可以适当放下了吧 ...

  6. 杭电oj————2057(java)

    question:A+ B again 思路:额,没啥思路/捂脸,用java的long包里的方法,很简单,只是有几次WA,有几点要注意一下 注意:如果数字有加号要删除掉,这里用到了正则表达式“\\+” ...

  7. 爬取杭电oj所有题目

    杭电oj并没有反爬 所以直接爬就好了 直接贴源码(参数可改,循环次数可改,存储路径可改) import requests from bs4 import BeautifulSoup import ti ...

  8. 杭电OJ——1198 Farm Irrigation (并查集)

    畅通工程 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可 ...

  9. 杭电OJ——1007 Quoit Design(最近点对问题)

    Quoit Design Problem Description Have you ever played quoit in a playground? Quoit is a game in whic ...

随机推荐

  1. 最强烈推荐-我的java收藏夹(内有国内最好的java论坛)

    原地址: http://bbs.chinaitlab.com/dispbbs.asp?boardid=148&id=34276 国内: www.chinajavaworld.com-论坛人很多 ...

  2. KMP与扩展KMP

    原文转自:http://www.cppblog.com/MatoNo1/archive/2011/04/17/144390.aspx KMP:给出两个字符串A(称为模板串)和B(称为子串),长度分别为 ...

  3. 我的django之旅(一)

    我的django之旅(一) 标签(空格分隔):django web 1.检验我们的python和django版本 liao@spring ~ $ python --version Python 2.7 ...

  4. php函数、类和对象以及类的封装、继承、类的静态方法、静态属性

    1.函数     php内置函数可以直接使用,如果没有安装php扩展即可     自定义函数 //函数function 函数名 function dump($var = null){ //支出默认参数 ...

  5. 评论PK投票功能的手机版

    ajax投票.点赞.回复,投票后自动转到查看投票结果,投票结果进度条动画显示 地址:http://files.cnblogs.com/files/macliu/hyw_wap.rar 效果图: 首页:

  6. Leetcode 104 Maximum Depth of Binary Tree python

    题目: Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the ...

  7. LFS,编译自己的Linux系统 - 编译临时系统

    编译GCC-4.8.2 PASS 1 解压并重命名 cd /mnt/lfs/sources tar -Jxf ../mpfr-3.1.2.tar.xz mv mpfr-3.1.2 mpfr tar - ...

  8. TrimPath - Js模板引擎

    当页面中引用template.js文件之后,脚本将创建一个TrimPath对象供你使用. parseDOMTemplate(elementId,optionalDocument) //获得模板字符串代 ...

  9. C# 获取当前应用程序的绝对路径支持asp.net

      Asp.net在类库中获取某文件的绝对路径.这个问题在初学的时候就经常碰到过,经常是查了忘,忘了查.浪费了大量的今天专门写个文章,以后到这里查.有时间顺便记得研究下这个东西. 在主程序目录就不说了 ...

  10. unity3d 导出 Excel

    我在unity里需要导出成Excel格式,试了一些方法,其中用c#的com组件的我还没成功不知道该怎么在unity里调用,(如果哪位大哥用别的方法在unity里成功了,可以交流下,最好给我一个小dem ...