7-21 PAT排名汇总
2017-10-25 00:58
555 查看
计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准(网址http://www.patest.cn)。
每次考试会在若干个不同的考点同时举行,每个考点用局域网,产生本考点的成绩。考试结束后,各个考点的成绩将即刻汇总成一张总的排名表。现在就请你写一个程序自动归并各个考点的成绩并生成总排名表。
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> 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); } }
相关文章推荐
- 7-21(排序) PAT排名汇总(25 分)
- PTA 7-21(排序) PAT排名汇总(25 分)25分代码
- 7-41 PAT排名汇总(25 分)
- PAT排名汇总(25 分)
- 7-6 PAT排名汇总
- PTA 7-41 PAT排名汇总(25 分)结构体排序
- PAT排名汇总
- PAT排名汇总(排序)
- (Pta)7-13 PAT排名汇总
- (PTA)7-13 PAT排名汇总
- 5-4 PAT排名汇总 (25分)
- 5-6 PAT排名汇总 (25分)
- 7-07. PAT排名汇总(25) (结构体 ZJU_PAT)
- PAT排名汇总
- PAT排名汇总 (25分)
- 5-41 PAT排名汇总 (25分)
- 浙江大学PAT乙级试题.1004. 成绩排名 (20)C语言
- PAT1004. 成绩排名 (20)
- PAT1004. 成绩排名
- PAT 1004. 成绩排名 (20)