PAT甲级——1025 PAT Ranking
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
/*
1.Clarification:
return registration_number final_rank location_number local_rank
so we need struct informations such as number,grade,final_rank,location number,local_rank
and woe use algorithm sort to sort the grade
The time cost is:
*/
#include <iostream>
#include <string>
#include <algorithm>
#include<cstring>
using namespace std;
struct student{
	char number[13];
	int grade;
	int final_rank;
	int location_number;
	int local_rank;
}stu[31000];
bool cmp(student a,student b){
	if(a.grade!=b.grade)
	{
		return a.grade>b.grade;
	 }
	 else
	 {
	 	return strcmp(a.number,b.number)<0;
	 }
} 
int main()
{
//	freopen("C://坚果云//算法//PATA1025in.txt","r",stdin);
//	freopen("C://坚果云//算法//PATA1025out.txt","w",stdout);
	int N,K,num=0;
	scanf("%d",&N);
	for(int i=1;i<=N;i++)
	{
		scanf("%d",&K);
		for(int j=0;j<K;j++)
		{
			scanf("%s %d",&stu[num].number,&stu[num].grade);
			stu[num].location_number = i;
			num++;
		}
		sort(stu+num-K,stu+num,cmp);
		stu[num-K].local_rank = 1;
		for(int t=num-K+1;t<num;t++)
		{
			if(stu[t].grade!=stu[t-1].grade)
			{
				stu[t].local_rank=t+1-num+K;
			}
			else
			{
				stu[t].local_rank = stu[t-1].local_rank;
			}
		 }
	}
	sort(stu,stu+num,cmp);
	printf("%d\n",num);
	int r=1;
	for(int i=0;i<num;i++)
	{
		if(i>0&&stu[i].grade!=stu[i-1].grade)
		{
			r=i+1;
		}
		printf("%s ",stu[i].number);
		printf("%d %d %d\n",r,stu[i].location_number,stu[i].local_rank);
	}
//	fclose(stdin);
//	fclose(stdout);
	return 0;
 } 												
											PAT甲级——1025 PAT Ranking的更多相关文章
- PAT 甲级 1025 PAT Ranking
		
1025. PAT Ranking (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Programmi ...
 - PAT 甲级 1025.PAT Ranking C++/Java
		
Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Z ...
 - PAT 甲级1025 PAT Ranking (25 分)(结构体排序,第一次超时了,一次sort即可小技巧优化)
		
题意: 给定一次PAT测试的成绩,要求输出考生的编号,总排名,考场编号以及考场排名. 分析: 题意很简单嘛,一开始上来就,一组组输入,一组组排序并记录组内排名,然后再来个总排序并算总排名,结果发现最后 ...
 - 【PAT】1025. PAT Ranking (25)
		
题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1025 题目描述: Programming Ability Test (PAT) is orga ...
 - PAT 甲级 1141 PAT Ranking of Institutions
		
https://pintia.cn/problem-sets/994805342720868352/problems/994805344222429184 After each PAT, the PA ...
 - PAT甲级——A1025 PAT Ranking
		
Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhe ...
 - PAT甲级1075 PAT Judge
		
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805393241260032 题意: 有m次OJ提交记录,总共有k道 ...
 - PAT 甲级 1075 PAT Judge (25分)(较简单,注意细节)
		
1075 PAT Judge (25分) The ranklist of PAT is generated from the status list, which shows the scores ...
 - PAT甲级——A1075 PAT Judge
		
The ranklist of PAT is generated from the status list, which shows the scores of the submissions. Th ...
 
随机推荐
- 【Linux】Linux中的网络命令
			
dig命令:是常用的域名查询工具,可以用来测试域名系统工作是否正常. 语法: dig(选项)(参数) [root@localhost tmp]# dig http://oa.kingnet.com ; ...
 - 洛谷 P1020 导弹拦截
			
题目传送门 解题思路: 其实就是求一遍最长不上升子序列和最长上升子序列 AC代码: #include<iostream> #include<cstdio> #include&l ...
 - java 实现每次从list中取5000条数据放入新list
			
从list中取固定条数的数据放入新的list里 public static <T> List<List<T>> split(List<T> resLis ...
 - go 汇编
			
汇编文件 go tool compile -S main.go>main.S go tool compile 可以看帮助 -N 关闭优化
 - Spring框架-IOC和AOP
			
IOC:它并不是一种技术实现,而是一种设计思想.在任何一个有实际开发意义的程序项目中,我们会使用很多类来描述它们特有的功能,并且通过类与类之间的相互协作来完成特定的业务逻辑.这个时候,每个类都需要负责 ...
 - 80.常用的返回QuerySet对象的方法使用详解:order_by
			
order_by: 将模型生成的表按照某个字段进行排序,默认情况下,按照升序的顺序排序,如果想要按照降序的顺序排序可以在字段的前面加一个"-",加一个负号就可以进行反转. mode ...
 - android stutio 添加依赖
			
添加依赖有 3种方法: 1 :copy jar 包到libs目录 ,add to library 2: copy aar 文件到libs ,gradle 文件 android 节点添加 repo ...
 - pandas中DataFrame重置设置索引
			
在pandas中,经常对数据进行处理 而导致数据索引顺序混乱,从而影响数据读取.插入等. 小笔总结了以下几种重置索引的方法: import pandas as pd import numpy as n ...
 - python pandas 画图、显示中文、股票K线图
			
目录: 1.pandas官方画图链接 2.标记图中数据点 3.画图显示中文 4.画股票K线图 5.matplotlib基本用法 6.format输出 6.format输出例子 eps_range=[0 ...
 - 我的第一次JAVA实训——校园公用房管理系统
			
老铁们,昨天电脑没电了.这是上周答应的大项目. 别打脸. 详细内容我之后再写,下面是代码地址. Github地址 附:一个寂寞 以上