43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
|
|
from functools import cmp_to_key
|
|||
|
|
|
|||
|
|
# 输入评委人数和参赛选手人数
|
|||
|
|
m, n = map(int, input("请输入评委人数和参赛人数(以英文逗号隔开,如4,5): ").split(','))
|
|||
|
|
scores = [list(map(int, input("请输入评委打分(以英文逗号隔开): ").split(','))) for _ in range(m)]
|
|||
|
|
|
|||
|
|
|
|||
|
|
def cmp(a, b):
|
|||
|
|
if a["sum"] != b["sum"]:
|
|||
|
|
return b["sum"] - a["sum"]
|
|||
|
|
|
|||
|
|
for i in range(m):
|
|||
|
|
if a["score"][i] == b["score"][i]:
|
|||
|
|
continue
|
|||
|
|
return b["score"][i] - a["score"][i]
|
|||
|
|
return 0
|
|||
|
|
|
|||
|
|
|
|||
|
|
def getresult():
|
|||
|
|
if m < 3 or m > 10 or n < 3 or n > 100:
|
|||
|
|
return "-1"
|
|||
|
|
|
|||
|
|
players = []
|
|||
|
|
|
|||
|
|
for j in range(n):
|
|||
|
|
player = []
|
|||
|
|
for i in range(m):
|
|||
|
|
if scores[i][j] < 1 or scores[i][j] > 10:
|
|||
|
|
return "-1"
|
|||
|
|
player.append(scores[i][j])
|
|||
|
|
player.sort(reverse=True)
|
|||
|
|
players.append({
|
|||
|
|
"idx": j,
|
|||
|
|
"sum": sum(player),
|
|||
|
|
"score": player
|
|||
|
|
})
|
|||
|
|
sorted_players = sorted(players, key=cmp_to_key(cmp))
|
|||
|
|
|
|||
|
|
return ",".join(list(map(lambda x: str(x["idx"] + 1), sorted_players[:3])))
|
|||
|
|
|
|||
|
|
|
|||
|
|
print(getresult())
|