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 |
|
Sample Output
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?的更多相关文章
- 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 ...
- POJ 3666 Making the Grade
Description A straight dirt road connects two fields on FJ's farm, but it changes elevation more tha ...
- 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 ...
- POJ3666Making the Grade[DP 离散化 LIS相关]
Making the Grade Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6445 Accepted: 2994 ...
- [CareerCup] 15.7 Student Grade 学生成绩
15.7 Imagine a simple database storing information for students' grades. Design what this database m ...
- 英语语法 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 ...
- FPGA speed grade
Altera的-6.-7.-8速度等级逆向排序,Xilinx速度等级正向排序. 不很严密地说,“序号越低,速度等级越高”这是Altera FPGA的排序方法, “序号越高,速度等级也越高”这是Xili ...
- HDU 5038 Grade(分级)
Description 题目描述 Ted is a employee of Always Cook Mushroom (ACM). His boss Matt gives him a pack of ...
- hdu---(5038)Grade(胡搞)
Grade Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Sub ...
- A-Making the Grade(POJ 3666)
Making the Grade Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4656 Accepted: 2206 ...
随机推荐
- C++连接Oracle之OCCI(windows)
上一节我们讲过了ADO连接Oracle,这一节我们尝试通过OCCI的方式,来在windows平台下连接Oracle数据库,下一节讨论在Linux环境下通过OCCI的方式连接远程的Oracle数据库. ...
- c++实现扫雷(坐标)
昨天在观察贪食蛇的代码时,看到了有如何实现扫雷的c++代码,觉得挺有趣,今天便又试了一下 #include <ctime> #include <cstdlib> #includ ...
- ORA-10618: Operation not allowed on this segment 执行存储过程权限需声明
执行SHOW_SPACE存储过程时只能在DBA角色下成功,在NORMAL角色用户下报错: ORA-10618: Operation not allowed on this segmentORA-065 ...
- Ansible Playbook 循环
Standard Loops 为了节省一些打字,重复的任务可以写成如下: - name: add several users user: name: "{{ item }}" st ...
- js ParseUrl
js ParseUrl function parseURL(url) { var a = document.createElement('a'); a.href = url; return { sou ...
- .net 发送邮件失败
1,是否为企业邮箱,如果是则用最高admin的帐号,降低其安全级别,下面的子帐号自动适用.(Google 阻止了从某个不够安全的应用进行的登录尝试) 2,做一个测试页面,对错误结果进行分析,一步一步查 ...
- 第七章 二叉搜索树 (d1)AVL树:重平衡
- np.random.seed()
124.np.random.seed()的作用 陈容喜 关注 2018.01.11 21:36 字数 3 阅读 4460评论 0喜欢 6 今天看到一段代码时遇到了np.random.seed(),搞不 ...
- python 网络客户端编程端口,模块
协议 功能 端口 模块 HTTP 网页 80 httplib,urllib,xmlrpclib NNTP Usenet 新闻组 119 nntplib FTP 文件传输 20(21控制和命令端口) f ...
- 分割回文串 II · Palindrome Partitioning II
[抄题]: 给定一个字符串s,将s分割成一些子串,使每个子串都是回文. 返回s符合要求的的最少分割次数. [思维问题]: 不知道要用预处理字符串降低复杂度 [一句话思路]: 先把预处理获得s中回文串的 ...