PAT(甲级)1025. PAT Ranking (25)

来源:互联网 发布:三大真理五大流氓知乎 编辑:程序博客网 时间:2024/06/05 20:26

题目:https://www.patest.cn/contests/pat-a-practise/1025

代码:

#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>using namespace std;struct stu{char id[13];int score;int l_rank;int f_rank;int l_number;}s[30010];bool cmp(stu a,stu b){if(a.score!=b.score) return a.score>b.score;else return strcmp(a.id,b.id)<0;}int main(){int n,temp,pos=0,i;scanf("%d",&n);for(i=1;i<=n;i++){    scanf("%d",&temp);for(int j=1;j<=temp;j++){scanf("%s%d",&s[pos].id,&s[pos].score);s[pos].l_number=i;pos++;}         sort(s+pos-temp,s+pos,cmp);   s[pos-temp].l_rank=1;   for(int j=pos-temp+1;j<pos;j++){   if(s[j].score==s[j-1].score) s[j].l_rank=s[j-1].l_rank;   else   s[j].l_rank=j+1-(pos-temp);   }}sort(s,s+pos,cmp);printf("%d\n",pos);s[0].f_rank=1;for(i=1;i<pos;i++){if(s[i].score==s[i-1].score) s[i].f_rank=s[i-1].f_rank;else  s[i].f_rank=i+1;}for(i=0;i<pos;i++){printf("%s %d %d %d\n",s[i].id,s[i].f_rank,s[i].l_number,s[i].l_rank);}   system("pause");} 

0 0
原创粉丝点击