您的位置:首页 > 其它

hdu 1.3.3/hed 1084

2016-11-13 20:33 197 查看
hdu ACM STEPS 1.3.3

“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

#include<iostream>
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<cmath>
#include<map>
#include<set>
#include<queue>
#include<cstdio>
#include<algorithm>
#include<string>
#include<sstream>
#include<ctime>
#define ll long long
#define INF 0x3f3f3f3f
using namespace std;
struct node {
int solv,h,m,s,xuhao;
} student[104];
bool cmp(node a,node b) {
if(a.solv!=b.solv) return a.solv>b.solv;
else  {
if(a.h!=b.h){return a.h<b.h;}
else {
if(a.m!=b.m){return a.m<b.m;}
else {return a.s<b.s;}
}
}
}
int grade[103];
int nums[6],cnt[6];
int main() {
ios::sync_with_stdio(false);
int n;
int solve,h,m,s;
char ch;
while(cin>>n&&(n!=-1)) {
memset(nums,0,sizeof nums);
memset(cnt,0,sizeof cnt);
for(int i=0;i<n;i++){
cin>>student[i].solv>>student[i].h>>ch>>student[i].m>>ch>>student[i].s;
nums[student[i].solv]++;
student[i].xuhao=i;
}
for(int i=0;i<6;i++){
nums[i]/=2;
}
sort(student,student+n,cmp);
/*for(int i=0;i<n;i++){
cout<<student[i].solv<<" "<<student[i].h<<ch<<student[i].m<<ch<<student[i].s<<" "<<student[i].xuhao<<endl;
}*/
for(int i=0;i<n;i++){
if(student[i].solv==5) solve=5,grade[student[i].xuhao]=100;
else if(student[i].solv==0) grade[student[i].xuhao]=50;
else{
if(cnt[student[i].solv]<nums[student[i].solv]){
cnt[student[i].solv]++;
if(student[i].solv==4) solve=4,grade[student[i].xuhao]=95;
if(student[i].solv==3) solve=3,grade[student[i].xuhao]=85;
if(student[i].solv==2) solve=2,grade[student[i].xuhao]=75;
if(student[i].solv==1) solve=1,grade[student[i].xuhao]=65;
}
else{
if(student[i].solv==4) grade[student[i].xuhao]=90;
if(student[i].solv==3) grade[student[i].xuhao]=80;
if(student[i].solv==2) grade[student[i].xuhao]=70;
if(student[i].solv==1) grade[student[i].xuhao]=60;
}
}

}
for(int i=0;i<n;i++){
cout<<grade[i]<<endl;
}
cout<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: