浙大pat甲级 1025
来源:互联网 发布:假面骑士drive知乎 编辑:程序博客网 时间:2024/05/01 11:26
结构体排序问题,可用vector<node> v[105] 分别来保存每个考场考生的信息,分别对每个考场的学生按照成绩来排序得出每个考场的排名,再将学生全部存到总的vector中并排序,得出这次考试全部学生的排名,注意分数相同排名一样。
ac代码:
#include<iostream>#include<cstring>#include<algorithm>#include<cstdlib>#include<cstdio>#include<cmath>#include<stack>#define eps 10000000#include<queue>#include<map>#include<set>using namespace std;struct node{ int id; string r_id; int fenshu; int rank1; int rank2;};bool cmp(node x,node y){ return x.fenshu<y.fenshu;}bool cmp1(node x,node y){ if(x.fenshu!=y.fenshu) return x.fenshu<y.fenshu; else return x.r_id>y.r_id;}int main(){ int n; cin>>n; vector<node> v[105]; vector<node> vv; int sum=0; for(int i=0;i<n;i++) { int k; cin>>k; sum+=k; for(int j=0;j<k;j++) { node tmp; tmp.id=i+1; cin>>tmp.r_id>>tmp.fenshu; v[i+1].push_back(tmp); } } cout<<sum<<endl; for(int i=1;i<=n;i++) { sort(v[i].begin(),v[i].end(),cmp); int d=v[i].size(); v[i][d-1].rank1=1; for(int j=d-2;j>=0;j--) { if(v[i][j].fenshu==v[i][j+1].fenshu) { v[i][j].rank1=v[i][j+1].rank1; } else { v[i][j].rank1=d-j; } } for(int j=0;j<d;j++) { vv.push_back(v[i][j]); } } sort(vv.begin(),vv.end(),cmp1); int d=vv.size(); //cout<<d<<endl; vv[d-1].rank2=1; cout<<vv[d-1].r_id<<" "<<vv[d-1].rank2<<" "<<vv[d-1].id<<" "<<vv[d-1].rank1<<endl; for(int j=d-2;j>=0;j--) { if(vv[j].fenshu==vv[j+1].fenshu) { vv[j].rank2=vv[j+1].rank2; } else { vv[j].rank2=d-j; } cout<<vv[j].r_id<<" "<<vv[j].rank2<<" "<<vv[j].id<<" "<<vv[j].rank1<<endl; }}
0 0
- 浙大pat甲级 1025
- 浙大pat甲级 1023
- 浙大pat甲级 1024
- 浙大PAT甲级 1026
- 浙大PAT甲级 1028
- 浙大PAT甲级 1029
- 浙大PAT甲级 1030
- 浙大PAT甲级 1031
- 浙大PAT甲级 1032
- 浙大PAT甲级 1033
- 浙大PAT甲级 1035
- 浙大PAT甲级 1037
- 浙大PAT甲级 1039
- 浙大PAT甲级 1040
- 浙大PAT甲级 1038
- 浙大PAT甲级 1041
- 浙大PAT甲级 1042
- * 浙大PAT甲级 1043
- CoderForces 510B (dfs)
- my学习OC--流程控制
- JAVA 验证码组件 kaptcha
- Maven3入门教程
- Guava学习之Map
- 浙大pat甲级 1025
- 队列&栈的研究
- 一个简单的爬虫——收集安居客上海租房信息
- 堆排序
- fopen()函数 打开流
- strcpy和memcpy的使用,实现字符串的循环右移,
- 程序员的十大无奈
- 管理还原数据-监视和管理还原数据
- 敏捷项目管理之每日晨会的重要性分析