当前位置:网站首页>1025 PAT Ranking
1025 PAT Ranking
2022-06-27 19:50:00 【Brosto_ Cloud】
Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhejiang University. Each test is supposed to run simultaneously in several places, and the ranklists will be merged immediately after the test. Now it is your job to write a program to correctly merge all the ranklists and generate the final rank.
Input Specification:
Each input file contains one test case. For each case, the first line contains a positive number N (≤100), the number of test locations. Then N ranklists follow, each starts with a line containing a positive integer K (≤300), the number of testees, and then K lines containing the registration number (a 13-digit number) and the total score of each testee. All the numbers in a line are separated by a space.
Output Specification:
For each test case, first print in one line the total number of testees. Then print the final ranklist in the following format:
registration_number final_rank location_number local_rank
The locations are numbered from 1 to N. The output must be sorted in nondecreasing order of the final ranks. The testees with the same score must have the same rank, and the output must be sorted in nondecreasing order of their registration numbers.
Sample Input:
2
5
1234567890001 95
1234567890005 100
1234567890003 95
1234567890002 77
1234567890004 85
4
1234567890013 65
1234567890011 25
1234567890014 100
1234567890012 85
Sample Output:
9
1234567890005 1 1 1
1234567890014 1 2 1
1234567890001 3 1 2
1234567890003 3 1 2
1234567890004 5 1 4
1234567890012 5 2 2
1234567890002 7 1 5
1234567890013 8 2 3
1234567890011 9 2 4#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
struct Stu {
string id;
int score;
int frank;
int lrank;
int lonum;
} a[50000];
bool cmp(Stu s1, Stu s2) {
return s1.score == s2.score ? s1.id < s2.id : s1.score > s2.score;
}
int main() {
int n, k, total = 0;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> k;
for (int j = total + 1; j <= k + total; j++) {
cin >> a[j].id >> a[j].score;
a[j].lonum = i;
}
sort(a + total + 1, a + total + k + 1, cmp);
int t = 2;
a[total + 1].lrank = 1;
for (int j = total + 2; j <= k + total; j++) {
if (a[j].score == a[j - 1].score) {
a[j].lrank = a[j - 1].lrank;
} else {
a[j].lrank = t;
}
t++;
}
total += k;
}
sort(a + 1, a + total + 1, cmp);
int t = 2;
a[1].frank = 1;
for (int i = 2; i <= total; i++) {
if (a[i].score == a[i - 1].score) {
a[i].frank = a[i - 1].frank;
} else {
a[i].frank = t;
}
t++;
}
cout << total << endl;
for (int i = 1; i <= total; i++) {
cout << a[i].id << ' ' << a[i].frank << ' ' << a[i].lonum << ' ' << a[i].lrank << endl;
}
return 0;
}
边栏推荐
- Pyhton爬取百度文库文字写入word文档
- Is it safe to buy stocks online and open an account?
- External interrupt experiment based on stm32f103zet6 library function
- 驾驭一切的垃圾收集器 -- G1
- Mathematical derivation from perceptron to feedforward neural network
- 华大单片机KEIL报错_WEAK的解决方案
- 形参的默认值-及return的注意事项-及this的使用-和箭头函数的知识
- 嵌入式软件开发中必备软件工具
- Garbage collector driving everything -- G1
- Don't worry. This is the truth about wages in all industries in China
猜你喜欢

429-二叉树(108. 将有序数组转换为二叉搜索树、538. 把二叉搜索树转换为累加树、 106.从中序与后序遍历序列构造二叉树、235. 二叉搜索树的最近公共祖先)

Bit.Store:熊市漫漫,稳定Staking产品或成主旋律

什么是SSR/SSG/ISR?如何在AWS上托管它们?

Vs code runs "yarn run dev" and reports "yarn": the file XXX cannot be loaded

指针和结构体

Minmei new energy rushes to Shenzhen Stock Exchange: the annual accounts receivable exceeds 600million and the proposed fund-raising is 450million

Blink SQL built in functions

External interrupt experiment based on stm32f103zet6 library function

Online text batch inversion by line tool

Don't worry. This is the truth about wages in all industries in China
随机推荐
shell脚本常用命令(三)
云笔记到底哪家强 -- 教你搭建自己的网盘服务器
聊聊毕业季
海底电缆探测技术总结
从感知机到前馈神经网络的数学推导
高收益银行理财产品在哪里看?
循环遍历及函数基础知识
ABAP-SM30删除前检查
作为软件工程师,给年轻时的自己的建议(下)
今晚战码先锋润和赛道第2期直播丨如何参与OpenHarmony代码贡献
What is ICMP? What is the relationship between Ping and ICMP?
Informatics Orsay all in one 1335: [example 2-4] connected block
基于STM32F103ZET6库函数蜂鸣器实验
带你认识图数据库性能和场景测试利器LDBC SNB
嵌入式软件开发中必备软件工具
使用MySqlBulkLoader批量插入数据
redis集群系列二
现在网上买股票开户身份证信息安全吗?
GIS遥感R语言学习看这里
Array exercises follow up