#include<cstdio>
#include<algorithm>
#include<stdlib.h>
#include<cstring>
using namespace std;
struct student
{
char id[15];
int score;
int lonum;
int localrank;
int finalrank;
}st[30010];
bool cmp(student st1,student st2)
{
if(st1.score!=st2.score)
return st1.score>st2.score;
else
return strcmp(st1.id,st2.id)<0;
}
int main()
{
int n;//考场数
scanf("%d",&n);
int k[105]={};//考场人数
int sum=0;//总人数
for(int i=1;i<=n;i++)
{
scanf("%d",&k[i]);
for(int j=sum;j<(k[i]+sum);j++)
{
scanf("%s %d",st[j].id,&st[j].score);
st[j].lonum=i;
}
sort(st+sum,st+sum+k[i],cmp);
st[sum].localrank=1;
for(int j=sum+1;j<(k[i]+sum);j++)
{
if(st[j].score==st[j-1].score)
st[j].localrank=st[j-1].localrank;
else
st[j].localrank=j-sum+1;
}
sum=k[i]+sum;
}
sort(st,st+sum,cmp);
st[0].finalrank=1;
for(int i=1;i<sum;i++)
{
if(st[i].score==st[i-1].score)
st[i].finalrank=st[i-1].finalrank;
else
st[i].finalrank=i+1;
}
printf("%d\n",sum);
for(int i=0;i<sum;i++)
{
printf("%s %d %d %d\n",st[i].id,st[i].finalrank,st[i].lonum,st[i].localrank);
}
system("pause");
return 0;
}
PAT 1025
最新推荐文章于 2022-01-24 23:33:40 发布