#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct student{
char id[16];
int score;
int local_number;
int local_rank;
}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 i, j, n, ni, num=0, r=1, rank=1;
scanf("%d",&n); //输入n
for(i=0;i<n;i++){
scanf("%d",&ni); //输入每块的ni
for(j=0;j<ni;j++){
scanf("%s %d",stu[num].id,&stu[num].score); //输入具体数据
stu[num].local_number=i+1;
num++;
}
sort(stu+num-ni,stu+num,cmp);
stu[num-ni].local_rank=1;
r=1,rank=2;
for(j=num-ni+1;j<num;j++){
if(stu[j].score!=stu[j-1].score)r=rank;
stu[j].local_rank=r;
rank++;
}
}
r=rank=1;
sort(stu,stu+num,cmp);
printf("%d\n",num);
for(i=0;i<num;i++){
if(i==0)r=1;
if(i>0&&stu[i].score!=stu[i-1].score)r=rank;
printf("%s %d %d %d\n",stu[i].id, r, stu[i].local_number,stu[i].local_rank);
rank++;
}
return 0;
}
PAT-A1025
最新推荐文章于 2024-01-13 16:20:35 发布