pat1025PAT Ranking (25)
来源:互联网 发布:sql删除重复字段数据 编辑:程序博客网 时间:2024/06/06 00:58
题意分析:
(1)给出多个考点的考试人数以及考生考号和成绩,求出所有参加考试的人最终排名、考场编号、本考场排名
(2)水题,考察排序,排名的规则按照以前的做法:按分数由高到低,同分同名次,不同分,按其在序列中的位置算排名
可能坑点:
#include <iostream>#include <algorithm>using namespace std;struct testee{ string ID; int location; int score; int finalRank; int localRank;};testee stu[30001];bool cmp(testee a,testee b){ if(a.score!=b.score)return a.score>b.score; else return a.ID<b.ID;}void getLocalRank(int start,int end){ stu[start].localRank=1; int currentScore=stu[start].score; int currentRank=stu[start].localRank; for(int i=start;i<end;i++) { if(stu[i].score==currentScore)stu[i].localRank=currentRank; else { stu[i].localRank=i+1-start; currentScore=stu[i].score; currentRank=stu[i].localRank; } }}void getFinalRank(int start,int end){ stu[start].finalRank=1; int currentScore=stu[start].score; int currentRank=stu[start].finalRank; for(int i=start;i<end;i++) { if(stu[i].score==currentScore)stu[i].finalRank=currentRank; else { stu[i].finalRank=i+1; currentScore=stu[i].score; currentRank=stu[i].finalRank; } }}int main(){ int N,K,i=1,k=0; cin>>N; while(i<=N) { cin>>K; int j=0; while(j<K) { cin>>stu[k].ID>>stu[k].score; stu[k].location=i; k++; j++; } sort(&stu[k-K],&stu[k],cmp); getLocalRank(k-K,k); i++; } sort(&stu[0],&stu[k],cmp); getFinalRank(0,k); cout<<k<<endl; for(int i=0;i<k;i++) { cout<<stu[i].ID<<" "<<stu[i].finalRank<<" "<<stu[i].location<<" "<<stu[i].localRank<<endl; } return 0;}
0 0
- pat1025PAT Ranking (25)
- 1025. PAT Ranking (25)
- 1025. PAT Ranking (25)
- 1025. PAT Ranking (25)
- 1025. PAT Ranking (25)
- 1025 PAT Ranking (25)
- 1025. PAT Ranking (25)
- 1025. PAT Ranking (25)
- 1025. PAT Ranking (25)
- 1025. PAT Ranking (25)
- 1025. PAT Ranking (25)
- 1025. PAT Ranking (25)
- 1025. PAT Ranking (25)
- 1025. PAT Ranking (25)
- 1025. PAT Ranking (25)
- 1025. PAT Ranking (25)
- 1025. PAT Ranking (25)
- 1025. PAT Ranking (25)
- SPOJ 1771 NQUEEN (DLX解n皇后问题)
- 51nod 1090 3个数和为0
- 关于java中流的使用--文件以及socket
- 南阳oj_(77)开灯问题
- LintCode-两个链表的和
- pat1025PAT Ranking (25)
- 程序员写好简历的五大技巧
- Mac OS X 10.9 启用 Web 服务器(默认预装 Apache+PHP 5.4.17)
- 单播、多播和广播
- 40个Java集合面试问题和答案
- C#集合类(数据结构)
- UVALive 4853 Emoogle Balance
- 移动设备上音频文件不能播放怎么办?
- 2014广州站 I - Little Zu Chongzhi's Triangles(贪心)