hdu 1084 What Is Your Grade?
2016-04-14 22:03
429 查看
题目链接: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; }
相关文章推荐
- Inline Hook
- 复杂链表的复制
- 描述TCP 协议三次握手,四次释放的过程
- html5新属性 download
- 非递归求解N皇后问题(回溯法)
- Java异常处理
- 数据结构和算法11 之基础排序
- LeetCode——009
- Android学习之图片加载库Fresco
- C++第2次实验2-三角形类
- 使用dbms_monitor
- 阶乘问题
- ADB错误“more than one device and emulator”(转)
- 15. 3Sum (重新分配数组大小)
- 【leetcode】232. Implement Queue using Stacks
- BFS变换素数,POJ(3126)
- 数据分页代码总结
- 贪心算法作业之会场安排问题
- [IOS]Core Data(数据建模与保存)
- JAVA处理Excel文件---生成简单的Excel文件