首页 > 编程知识 正文

浙大PAT甲级1025 PAT Ranking

时间:2023-05-05 01:32:47 阅读:240506 作者:286

1025 PAT Ranking

#include<math.h>#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct Student{char id[14];int score;int room;int room_rank;}stu[50000];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,all=0;scanf("%d", &n);for (int i = 1; i <= n; i++){scanf("%d", &k);for (int j = 0; j < k; j++){scanf("%s %d", stu[all].id, &stu[all].score);stu[all].room = i ;all++;}sort(stu+all-k,stu+all,cmp);stu[all - k].room_rank = 1;for (int j = all - k,rank=2; j < all; j++,rank++){if (stu[j].score == stu[j + 1].score)stu[j + 1].room_rank = stu[j].room_rank;elsestu[j + 1].room_rank = rank;}}sort(stu, stu + all, cmp);printf("%dn", all);int tmp = 1;printf("%s %d %d %dn", stu[0].id,tmp, stu[0].room, stu[0].room_rank);for (int i = 1; i <all; i++){if (stu[i - 1].score != stu[i].score)tmp = i + 1;printf("%s %d %d %dn", stu[i].id, tmp, stu[i].room, stu[i].room_rank);}return 0;}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。