PAT 1025. PAT Ranking
来源:互联网 发布:矩阵型组织结构优缺点 编辑:程序博客网 时间:2024/05/09 20:56
题目:http://pat.zju.edu.cn/contests/pat-a-practise/1025
题解:
先分别排序,再整体排序。要注意相同分数相同名次。
代码:
#include<cstdio>#include<iostream>#include<cstring>#include<cmath>#include<string>#include<vector>#include<queue>#include<stack>#include<map>#include<algorithm>using namespace std;struct student{ char id[15]; int score; int rankAll; int rankLocal; int localNum;}stu[30005];bool cmp(const struct student &a,const struct student &b){ if(a.score>b.score) return true; else if(a.score==b.score) return strcmp(a.id,b.id)<0; else return false;}void doRankLocal(int st,int en,int len){ int idx=1,num=1; stu[st].rankLocal=idx; for(int i=1;i<len;++i) { if(stu[st+i].score==stu[st+i-1].score) { stu[st+i].rankLocal=idx; ++num; } else { idx+=num; num=1; stu[st+i].rankLocal=idx; } }}void doRankAll(int st,int en,int len){ int idx=1,num=1; stu[st].rankAll=idx; for(int i=1;i<len;++i) { if(stu[st+i].score==stu[st+i-1].score) { stu[st+i].rankAll=idx; ++num; } else { idx+=num; num=1; stu[st+i].rankAll=idx; } }}int main(){ int idx=0; int n,k; scanf("%d",&n); for(int i=0;i<n;++i) { scanf("%d",&k); for(int j=0;j<k;++j) { scanf("%s%d",stu[idx].id,&stu[idx].score); stu[idx].localNum=i+1; ++idx; } sort(stu+idx-k,stu+idx,cmp); doRankLocal(idx-k,idx,k); } sort(stu,stu+idx,cmp); doRankAll(0,idx,idx); printf("%d\n",idx); for(int i=0;i<idx;++i) { printf("%s %d %d %d\n",stu[i].id,stu[i].rankAll,stu[i].localNum,stu[i].rankLocal); } return 0;}
来源:http://blog.csdn.net/acm_ted/article/details/20137869
0 0
- PAT 1025. PAT Ranking
- PAT 1025. PAT Ranking
- PAT 1025. PAT Ranking
- 【PAT】1025. PAT Ranking
- PAT--1025. PAT Ranking
- PAT 1025. PAT Ranking (25)
- 【PAT】1025. PAT Ranking (25)
- PAT 1025. PAT Ranking (25)
- pat 1025. PAT Ranking (水)
- PAT 1025. PAT Ranking (25)
- PAT 1025. PAT Ranking (25)
- PAT 1025. PAT Ranking (25)
- [pat]1025. PAT Ranking (25)
- 【PAT】1025. PAT Ranking (25)
- PAT 1025. PAT Ranking (25)
- PAT-AL 1025. PAT Ranking
- 【PAT】1025. PAT Ranking (25)
- 1025. PAT Ranking
- 绘图闪烁问题
- C# WebForm
- 铺货率调查访问员注意事项
- Java VisualVM 远程连接(按照第7点配置tomcat即可)
- [029] 微信公众帐号开发教程第5篇-各种消息的接收与响应
- PAT 1025. PAT Ranking
- UIAutomator如何添加第三方jar包
- Linux下C语言键盘输入密码时无回显
- hdu1027在1-N自然数组成递增序列,找第M小的序列!难
- java中synchronized的用法详解
- 【C/C++】Linux下使用system()函数一定要谨慎
- poi生成Excel
- [030] 微信公众帐号开发教程第6篇-文本消息的内容长度限制揭秘
- 转~android code debug 技巧~