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的更多相关文章

  1. PAT 甲级 1025 PAT Ranking

    1025. PAT Ranking (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Programmi ...

  2. PAT 甲级 1025.PAT Ranking C++/Java

      Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Z ...

  3. PAT 甲级1025 PAT Ranking (25 分)(结构体排序,第一次超时了,一次sort即可小技巧优化)

    题意: 给定一次PAT测试的成绩,要求输出考生的编号,总排名,考场编号以及考场排名. 分析: 题意很简单嘛,一开始上来就,一组组输入,一组组排序并记录组内排名,然后再来个总排序并算总排名,结果发现最后 ...

  4. 【PAT】1025. PAT Ranking (25)

    题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1025 题目描述: Programming Ability Test (PAT) is orga ...

  5. PAT 甲级 1141 PAT Ranking of Institutions

    https://pintia.cn/problem-sets/994805342720868352/problems/994805344222429184 After each PAT, the PA ...

  6. PAT甲级——A1025 PAT Ranking

    Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhe ...

  7. PAT甲级1075 PAT Judge

    题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805393241260032 题意: 有m次OJ提交记录,总共有k道 ...

  8. PAT 甲级 1075 PAT Judge (25分)(较简单,注意细节)

    1075 PAT Judge (25分)   The ranklist of PAT is generated from the status list, which shows the scores ...

  9. PAT甲级——A1075 PAT Judge

    The ranklist of PAT is generated from the status list, which shows the scores of the submissions. Th ...

随机推荐

  1. python counter、闭包、generator、解数学方程、异常

    1.counter 2.闭包 3.generator 4.解数学方程 5.异常 1.python库——counter from collections import Counter breakfast ...

  2. 14. react 基础 redux 的编写 TodoList 功能

    1. 安装 redux 监听工具 ( 需要翻墙 ) 打开 谷歌商店 搜索 redux devtool 安装第一个即可 2. 安装 redux yarn add redux 3. 创建 一个 store ...

  3. MBR&/BOOT&GRUB

      能正常工作的grub应该包 括一下文件:stage1.stage2.*stage1_5.menu.lst. 其中stage1要被安装(也就是写入)某个硬盘的主引导记录,或者某个活动分区(这个分区要 ...

  4. code force 1228C

    算是一题普通数论+思维题吧. 大概很多人是被题意绕晕了. 思路: 首先常规操作求出X的质因子. 然后题目要求的是,X的每个质因子p,在g(i,p)的连乘.i∈[1,n]: 我们转换下思维,不求每一个g ...

  5. Java 过滤器Filter,Java Filter 不拦截某些请求 Java 过滤器支持Ajax请求

    ================================ ©Copyright 蕃薯耀 2020-01-10 https://www.cnblogs.com/fanshuyao/ 一.Java ...

  6. HTML5 SVG应用(1)——loading效果

    先看一下效果: 链接 代码: <svg version="1.1" id="loader-1" xmlns="http://www.w3.org ...

  7. UML-重构

    1.重构是什么? 重构是重写或重新构建已有代码的结构化和规律性方法,但不会改变已有代码的外在行为,而是采用一系列少量转换的步骤,并且每一步都结合了重新执行的测试.重构并不是全部推翻原有代码结构. 2. ...

  8. Numa解释

    原路径:http://www.sohu.com/a/126402403_609500 内容概要 今天的文章我们将简单学习下Hyper-V如何通过NUMA(Non-Uniform Memory Acce ...

  9. springboot和shiro的整合

    直接贴上代码 1. 所需要的jar包 <dependency> <groupId>org.apache.shiro</groupId> <artifactId ...

  10. I420转RGB

    http://blog.csdn.net/huiguixian/article/details/17288909 public class YuvToRGB { private static int  ...