问题1060--4.跳远排名

1060: 4.跳远排名

[命题人 : ]
时间限制 : 2.000 sec  内存限制 : 128 MB

题目描述

学校要开运动会了,今年报名跳远项目的同学比去年又增加了不少。体育老师为了提高效率和减少出错,就想把以前手工排名的方法改为电脑自动排名,但是体育老师不会编程,于是就想到了小明同学。小明同学是学校的编程高手,最近还学了Python,体育老师心想小明同学肯定能帮忙解决这个问题。于是就去找小明同学帮忙,并把跳远排名规则告诉了他:

本次跳远比赛不分预赛和决赛,即直接决赛,每位参赛选手都有6次(即6轮)试跳机会,每次都会有一个成绩。如果选手某次试跳放弃机会,则该次成绩视为0。最后按6次成绩中最好的一次成绩的好坏来判定名次如果6次成绩中最好的一次成绩相同,就看次优成绩,次优成绩好的名次靠前。依次类推,排出名次。如果出现6次都相同的情况则并列名次,但出现并列名次时,后面的名次要相应往后推例如,出现两个第2名,那么下一个名次就是第4名,因为第3名的位置已经在第2名被占用了。出现3个第2名,那么下一个名次就是第5名,其他情况依次类推。

小明想了想,很快就帮体育老师做出来了。假如你的体育老师也来叫你帮写这个程序,你能用Python做出来吗?请你试试吧!

输入

第一行一个整数n2<=n<=30),表示参赛人数,第2行至第n+1行(即接下来的n)分别表示编号为12、……、n的选手成绩,每行由空格隔开的6个整数,表示每位选手的6次试跳成绩(单位是厘米)

【提示】Python读取输入数据时可以类似这样的形式写:

n = int(input())

for i in range(n):

# 这里是读取一行的代码,

# 然后做适当的数据处理

输出

n行。按编号顺序123、……、n分别输出对应的名次,每行用空格隔开的2个整数,第一个整数表示参赛选手编号,第二个整数表示对应的排名名次。

样例输入 Copy

2
350 351 355 349 0 340
0 349 344 354 355 348

样例输出 Copy

1 2
2 1

来源/分类