PAT A1025. PAT Ranking (25)
2017-01-08 11:31
387 查看
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:
Sample Output:
不知道为何,一直有一个测试点不通过,等我二刷再看一下
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 <cstdio> #include <stdlib.h> #include <algorithm> #include <vector> #include <cstring> using namespace std; struct Student { char number[15]; int score; int rank; int location; int locationr; }S[30301]; bool cmp(Student a,Student b) { if(a.score!=b.score) return a.score>b.score; else return strcmp(a.number,b.number)<0; } int main() { int n,max=0; scanf("%d",&n); for(int i=0;i<n;i++) { int m=0; scanf("%d",&m); for(int j=0;j<m;j++) { scanf("%s %d",S[max].number,&S[max].score); max++; } sort(S + max-m,S + max,cmp ); for(int j=0;j<m;j++) { if(S[max-m+j].score==S[max-m+j-1].score) { S[max-m+j].location=S[max-m+j-1].location; S[max-m+j].locationr=S[max-m+j-1].locationr; } else { S[max-m+j].location=i+1; S[max-m+j].locationr=j+1; } } } sort(S ,S+max, cmp); for(int i=0;i<max;i++) { if(S[i].score==S[i-1].score) { S[i].rank=S[i-1].rank; } else { S[i].rank=i+1; } } printf("%d\n",max); for(int i=0;i<max;i++) { printf("%s %d %d %d\n",S[i].number,S[i].rank,S[i].location,S[i].locationr); } system("pause"); return 0; }
相关文章推荐
- 来自一个程序员内心深处的心声
- 读《大学之路》有感---谈谈书房对于一个家庭的重要性
- 剖析mm_struct
- 最新纯净版win7系统下载
- 三维空间数据处理的一些库和工具(含DEM及动画等)
- 不使用sudo命令执行docker
- 算法提高 Quadratic Equation
- NOIP 1999 提高组 复赛 拦截导弹
- matplotlib设置默认参数和属性cycle
- Swift基础之CoreData的使用
- Android 手动显示和隐藏软键盘
- Android 文件夹简单介绍
- ZooKeeper集群
- Swift基础之CoreData的使用
- python函数
- Jquery DIV滚动至浏览器顶部位置固定
- Android性能优化典范
- 过滤器Filter
- BZOJ4513 [Sdoi2016]储能表
- 算法提高 素数判断