编程介的小学生 2019-04-04 11:58 采纳率: 20.5%
浏览 174

一个rank的分类的一个算法的问题,用了C语言的程序的设计怎么求解的

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


  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 求差集那个函数有问题,有无佬可以解决
    • ¥15 【提问】基于Invest的水源涵养
    • ¥20 微信网友居然可以通过vx号找到我绑的手机号
    • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
    • ¥15 解riccati方程组
    • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
    • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
    • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
    • ¥50 树莓派安卓APK系统签名
    • ¥65 汇编语言除法溢出问题