HPUOJ---2017寒假作业--专题0/H-What Is Your Grade(switch语句)
来源:互联网 发布:js中window.onload 编辑:程序博客网 时间:2024/05/28 19:23
H - What Is Your Grade?
“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!
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!
A test case starting with a negative integer terminates the input and this test case should not to be processed.
45 06:30:174 07:31:274 08:12:124 05:23:1315 06:30:17-1
100909095100
思路:题目说的很清楚,0道50分,5道100分,1道至4道,根据提交时间 ,同样的题数,前半部分比后半部分
多五分。
代码一:自己的思路(很烂很菜的)#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct stu{int n;char time[10];int turn;int k;int p; } data[100+25]; bool cmp1(stu A,stu B) { if(A.n==B.n) { return strcmp(A.time,B.time)<0;} //字符串排序就应该这样,一定要记清楚了 return A.n>B.n; } bool cmp2(stu A,stu B) { return A.turn<B.turn; } int main() { int N,i,k[100+25],a,b,c,d,j,m; while(scanf("%d",&N),N>=0) { a=1,b=1,c=1,d=1,j=-1; for(i=0;i<N;i++) { scanf("%d %s",&data[i].n,data[i].time); data[i].turn=i;}sort(data,data+N,cmp1); for(i=0;i<N;i++){ if(data[i].n==5) { data[i].k=100; j=i; } else if(data[i].n==data[i+1].n&&data[i].n==4) a++; else if(data[i].n==data[i+1].n&&data[i].n==3) b++; else if(data[i].n==data[i+1].n&&data[i].n==2) c++; else if(data[i].n==data[i+1].n&&data[i].n==1) d++; else data[i].k=50;}m=j+1;for(i=m;i<m+a/2;i++) data[i].k=95;for(i=m+a/2;i<m+a;i++) data[i].k=90;for(i=m+a;i<m+a+b/2;i++) data[i].k=85;for(i=m+a+b/2;i<m+a+b;i++) data[i].k=80;for(i=m+a+b;i<m+a+b+c/2;i++) data[i].k=75;for(i=m+a+b+c/2;i<m+a+b+c;i++) data[i].k=70;for(i=m+a+b+c;i<m+a+b+c+d/2;i++) data[i].k=65;for(i=m+a+b+c+d/2;i<m+a+b+c+d;i++) data[i].k=60;for(i=0;i<N;i++) data[i].p=data[i].k; sort(data,data+N,cmp2);//因为要按原顺序输出,所以把已经被打乱的顺序重新再排 for(i=0;i<N;i++)printf("%d\n",data[i].p);printf("\n"); } return 0; }代码二:借鉴某大神的思路。switch语句,很厉害。
#include<cstdio>#include<cstring> #include<algorithm>using namespace std;struct stu{int n;char time[10];int turn;int k;}data[100+12];bool cmp1(stu A,stu B){if(A.n==B.n) return strcmp(A.time,B.time)<0;return A.n>B.n; }bool cmp2(stu A,stu B){return A.turn<B.turn; //最后要按原序输出 ,将顺序排列,最后回归原序}int main(){int N,i,p[100+10],a; //用a来代表同样题数提交的顺序(厉害)while(scanf("%d",&N),N>=0){a=0;memset(p,0,sizeof(p));for(i=0;i<N;i++){scanf("%d %s",&data[i].n,data[i].time);data[i].turn=i;p[data[i].n]++;//用这个方法来计算统计做对某一题数的人数,更加方便,不易想到 //}for(i=0;i<N;i++){switch(data[i].n){case 0:data[i].k=50;break;case 1:data[i].k=60;break;case 2:data[i].k=70;break;case 3:data[i].k=80;break;case 4:data[i].k=90;break;case 5:data[i].k=100;break; }if(data[i].n>0&&data[i].n<5){if(p[data[i].n]<=1||a<p[data[i].n]/2) //这一点很不容易想到啊 //{data[i].k+=5;a++; //前几个的分数较高,那咋办呢,不用你再那样都算开,直接引入一个新的变量就可以了,// }if(data[i].n!=data[i+1].n) //和下面的不一样了就要归0了,进入下一个 // a=0;}}sort(data,data+N,cmp2);for(i=1;i<N;i++) printf("%d\n",data[i].k);printf("\n");}return 0; }
0 0
- HPUOJ---2017寒假作业--专题0/H-What Is Your Grade(switch语句)
- HPUOJ---2017寒假作业--专题-1/H-不要62
- HPUOJ--2017寒假作业-专题0/P-贪心
- HPUOJ--2017寒假作业专题0/I-SDOI
- HPUOJ--2017寒假作业-专题0/Q-Radar Installation
- HPUOJ---2017寒假作业--专题0/D-EXCEL排序
- HPUOJ---2017寒假作业--专题0/E-稳定排序
- HPUOJ---2017寒假作业--专题0/F-The MAX
- HPUOJ---2017寒假作业--专题0/G-Milk
- HPUOJ---2017寒假作业--专题0/I-SDOI
- What Is Your Grade?
- What Is Your Grade?
- What Is Your Grade?
- what is your grade
- What Is Your Grade?
- What Is Your Grade?
- What Is Your Grade?(1084)
- What Is Your Grade? (sort)
- 一步两步-自己动手实现快速可用的jQuery分页插件-适合ajax请求
- SDUT 2779 找朋友 BFS
- murmurhash64B c# c
- Fliptile
- GetFrontBufferData vs GetBackBuffer
- HPUOJ---2017寒假作业--专题0/H-What Is Your Grade(switch语句)
- 简单粗暴彻底解决selenium+chromedriver无法定位各种元素的方法
- 社交媒体(朋友圈、微博、QQ空间)开发一网打尽,PC端移动端都有!——源码来袭!
- 快速幂
- js技巧
- cf 777B _ B. Game of Credit Cards (排序比较)
- POJ P1611 The Suspects
- mysql优化
- POJ 3101 Astronomy 可能会