当前位置:网站首页>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;
}
边栏推荐
- 基于STM32F103ZET6库函数按键输入实验
- Bit. Store: long bear market, stable stacking products may become the main theme
- 券商经理的开户二维码开户买股票安全吗?有谁知道啊
- OpenSSL client programming: SSL session failure caused by an obscure function
- DCC888 :Register Allocation
- redis集群系列二
- 金鱼哥RHCA回忆录:DO447管理项目和开展作业--创建作业模板并启动作业
- 429-二叉树(108. 将有序数组转换为二叉搜索树、538. 把二叉搜索树转换为累加树、 106.从中序与后序遍历序列构造二叉树、235. 二叉搜索树的最近公共祖先)
- 判断一个变量是数组还是对象?
- Memoirs of actual combat: breaking the border from webshell
猜你喜欢

《第五项修炼》(The Fifth Discipline):学习型组织的艺术与实践

What is ICMP? What is the relationship between Ping and ICMP?

工作流自动化 低代码是关键

Crawl national laws and Regulations Database

Online text batch inversion by line tool

Blink SQL内置函数大全

Bit. Store: long bear market, stable stacking products may become the main theme

MySQL表的增删改查(基础)

Bit. Store: long bear market, stable stacking products may become the main theme

深度学习和神经网络的介绍
随机推荐
拥抱云原生:江苏移动订单中心实践
redis集群系列二
如何封裝調用一個庫
1023 Have Fun with Numbers
Array exercises follow up
【建议收藏】ABAP随笔-EXCEL-4-批量导入-推荐
流程判断-三目运算-for循环
Buzzer experiment based on stm32f103zet6 library function
Function key input experiment based on stm32f103zet6 Library
Labelimg usage guide
云笔记到底哪家强 -- 教你搭建自己的网盘服务器
Seven phases of CMS implementation
作为软件工程师,给年轻时的自己的建议(下)
工作流自动化 低代码是关键
Making single test so simple -- initial experience of Spock framework
昱琛航空IPO被终止:曾拟募资5亿 郭峥为大股东
让单测变得如此简单 -- spock 框架初体验
NVIDIA Clara-AGX-Developer-Kit installation
Memoirs of actual combat: breaking the border from webshell
实战回忆录:从Webshell开始突破边界