7-21 PAT排名汇总
计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准
每次考试会在若干个不同的考点同时举行,每个考点用局域网,产生本考点的成绩。考试结束后,各个考点的成绩将即刻汇总成一张总的排名表。
现在就请你写一个程序自动归并各个考点的成绩并生成总排名表。
#include #include #include #include using namespace std;typedef long long ll;const int maxn = 1e5;struct Data { ll id; int score, ran, fran, code; bool operator < (const Data &d) const { if (score != d.score) return score > d.score; return id < d.id; }}data[maxn];int main() { int n, sum = 0, pos = 0; scanf("%d", &n); for (int i = 1; i <= n; i++) { int k; scanf("%d", &k); sum += k; int spos = pos; for (int j = 1; j <= k; j++) { ++pos; scanf("%lld %d", &data[pos].id, &data[pos].score); data[pos].code = i; } sort(data + spos + 1, data + pos + 1); int cnt = 1; data[spos + 1].ran = cnt; for (int j = spos + 2; j <= pos; j++) { ++cnt; if (data[j].score == data[j - 1].score) data[j].ran = data[j - 1].ran; else data[j].ran = cnt; } } sort(data + 1, data + pos + 1); int cnt = 1; data[1].fran = cnt; for (int i = 2; i <= pos; i++) { ++cnt; if (data[i].score == data[i - 1].score) data[i].fran = data[i - 1].fran; else data[i].fran = cnt; } printf("%d\n", sum); for (int i = 1; i <= sum; i++) { printf("%013lld %d %d %d\n", data[i].id, data[i].fran, data[i].code, data[i].ran); }}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~