题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1084
题意:根据做题数目和时间输出分数
代码:
#include<bits/stdc++.h> using namespace std; int count1[100]; int ys(int num) { int sroce; if(num==5) sroce=100; else if(num==4) sroce=90; else if(num==3) sroce=80; else if(num==2) sroce=70; else if(num==1) sroce=60; else if(num==0) sroce=50; return sroce; } struct p { int num; char s[100]; int sro; }P[105],Q[105]; bool cmp(p X,p Y) { if(X.num==Y.num) { if(strcmp(X.s,Y.s)==-1) return 1; else return 0; } return X.num>Y.num; } int main() { int t; while(1) { memset(count1,0,sizeof(count1)); cin>>t; if(t==-1) break; for(int i=0;i<t;i++) { cin>>P[i].num>>P[i].s; Q[i].num=P[i].num; strcpy(Q[i].s,P[i].s); count1[P[i].num]++; } sort(P,P+t,cmp); for(int i=0;i<t;i++) { if(P[i].num==5) { P[i].sro=100; continue; } if(P[i].num==0) { P[i].sro=50; continue; } for(int j=1;j<=count1[P[i].num]/2;j++) P[i+j-1].sro=ys(P[i].num)+5; for(int j=count1[P[i].num]/2+1;j<=count1[P[i].num];j++) P[i+j-1].sro=ys(P[i].num); i=i+count1[P[i].num]-1; } for(int i=0;i<t;i++) { for(int j=0;j<t;j++) { if((Q[i].num==P[j].num)&&(strcmp(Q[i].s,P[j].s)==0)) { cout<<P[j].sro<<endl; break; } } } cout<<endl; } return 0; }