’‘’
最直接的排序思路 + 冒泡排序
新手求带
‘’‘
n = int(input())
# [总分, 语文成绩, 学号]
table = [[0]*3 for _ in range(n)]
# create table
for i in range(n):
line = input().split()
y, s, w = int(line[0]), int(line[1]), int(line[2])
table[i][0], table[i][1], table[i][2] = y + s + w, y, i+1
# bubble sort
for i in range(n-1):
for j in range(n-i-1):
# 总成绩逆序交换
if table[j][0] < table[j+1][0]:
table[j], table[j+1] = table[j+1], table[j]
else:
# 总成绩相同, 语文成绩逆序
if table[j][0] == table[j+1][0] and table[j][1] < table[j+1][1]:
table[j], table[j+1] = table[j+1], table[j]
else:
# 语文成绩也相同, 学号逆序
if table[j][1] == table[j+1][1] and table[j][2] > table[j+1][2]:
table[j], table[j+1] = table[j+1], table[j]
for i in range(5):
print(table[i][2], table[i][0])
自定一排序函数
def sort_(p1, p2):
if p1[0] != p2[0]:
return p1[0] < p2[0]
if p1[1] != p2[1]:
return p1[1] < p2[1]
return p1[2] > p2[2]
if __name__ == '__main__':
n = int(input())
table = [[0]*3 for _ in range(n)]
# create table
for i in range(n):
line = input().split()
y, s, w = int(line[0]), int(line[1]), int(line[2])
table[i][0], table[i][1], table[i][2] = y + s + w, y, i+1
# bubble sort
for i in range(n):
for j in range(n-i-1):
if sort_(table[j], table[j+1]):
table[j], table[j+1] = table[j+1], table[j]
# show
for i in range(5):
print(table[i][2], table[i][0])