编程介的小学生 2018-11-09 14:01 采纳率: 20.5%
浏览 487
已采纳

关于一个算法问题的探讨,怎么才能计算得到rank

Problem Description
As we all know, after a series of international contests, the leaders are wild about ranking the schools to appraise the development of the ACM of our country. There are a lot of schools attend the contests, and each school has some teams or none, and each team may get some prizes of not. There are three kinds of prizes of the contests: gold, silver and copper, and gold is the best one and silver is better than copper. Now we get the result of all the schools, you should rank them, and print them according to the below rules:

1) We define the ranks between any two schools (or two teams) as the follow rules: firstly we compare the number of gold prizes, and the school is better whose number of gold prizes is larger, and if the numbers of gold prize are the same then compare the silver prizes and then copper prizes. If all the numbers of gold prizes and silver prizes and copper prizes are the same, then we just say the two school (or two teams) are the same good, and their ranks are the same, you have to obey the lexicographic orders when you print them, though.

2) We define the rank number as the following rule: if there are three schools (or three teams), A is as good as B, but better than C. So the rank number of A and B is 1 (the rank number starts from 1), and C is 3, we omit the rank number 2. If more, the rule goes on.

Input
There are T cases come, and the first line contains just one integer T.
In each case of following T ones, there is an integer N indicates that there are N following lines describe the information of the encouragement.
Each line contains fours strings: the name of the school, the name of the team, the kind of the prize ("none" means the team gets no prize), and the contest hosting place. Any string is no longer than fifty characters. T<=10, N <=200, and the school number will not be beyond N, and the team number of each school will not exceed 100.

Output
For each case, firstly you show the number of school, and then show the rank list as the format: the school name, the rank number, and the numbers of gold prize and silver prize and copper prize.
Then you print the teams' information: the team name, the rank number, the numbers of gold prize and silver prize and copper prize.
After printing the rank list, firstly you print the number of the contests, and then you have to print the contest information: the name of hosting place (shown lexicographically), the number of gold prize, and the number of silver prize and copper. You can assume all the data is correct.

Sample Input
1
4
aaa mayday gold nanjing
bbb let's_go silver beijing
ccc how_do_you_do??? none xihua
aaa acm.hdu.edu.cn copper xihua

Sample Output
Case 1:


school number: 3
aaa 1 1 0 1
team number: 2
mayday 1 1 0 0
acm.hdu.edu.cn 2 0 0 1
bbb 2 0 1 0
team number: 1
let's_go 1 0 1 0
ccc 3 0 0 0
team number: 1
how_do_you_do??? 1 0 0 0


contest number: 3
beijing 0 1 0
nanjing 1 0 0
xihua 0 0 1


  • 写回答

2条回答

  • threenewbee 2018-12-03 14:52
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog