#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
struct student{
char id[20];//准考证号
int score;//成绩
int loc;//考场号
int r;//总排名
int locr;//本地排名
}stu[30010];
bool cmp(student a,student b){
if(a.score!=b.score)
return a.score>b.score;
else
return strcmp(a.id,b.id)<0;
}
int main(){
//输入
int N,K;
scanf("%d",&N);
int num=0,locnum=1;
for(int i=0;i<N;i++){
scanf("%d",&K);
for(int j=0;j<K;j++){
scanf("%s%d",stu[num].id,&stu[num].score);
stu[num].loc=locnum;
num++;
}
//本地排名
sort(stu+num-K,stu+num,cmp);
stu[num-K].locr=1;
for(int j=1;j<K;j++){
if(stu[num-K+j].score==stu[num-K+j-1].score){
stu[num-K+j].locr=stu[num-K+j-1].locr;
}
else{
stu[num-K+j].locr=j+1;
}
}
locnum++;
}
sort(stu,stu+num,cmp);
//总排名
stu[0].r=1;
for(int i=1;i<num;i++){
if(stu[i].score==stu[i-1].score){
stu[i].r=stu[i-1].r;
}
else{
stu[i].r=i+1;
}
}
//输出
printf("%d\n",num);
for(int i=0;i<num;i++){
printf("%s %d %d %d\n",stu[i].id,stu[i].r,stu[i].loc,stu[i].locr);
}
return 0;
}
A1025 PAT Ranking
最新推荐文章于 2022-03-26 23:30:36 发布