足球双循环赛制:双循环是所有参加比赛的队均能相遇两次,最后按各队在两个循环的全部比赛中的积分、得失分率排列名次。
说明:一场比赛,赢者积3分,输者积0分,平局各积1分,输出按照每队积分排名降序排列,如果两队积分相同,则按照队名升序排列。
示例1:
输入
a-b 3:0
b-a 1:1
输出
a 4,b 1
示例2:
输入
a-b 3:0
a-c 2:1
b-a 1:1
c-a 0:1
b-c 4:3
c-b 2:2
输出
a 10,b 5,c 1
Python代码:
import sys
data = sys.stdin.readline().strip()
inputlist = []
while True:
inputlist.append(data)
data = sys.stdin.readline().strip()
if data == '':
break
scores = {}
for i in inputlist:
splitlist = i.split()
name1 = splitlist[0][0]
name2 = splitlist[0][2]
scores1 = int(splitlist[1][0])
scores2 = int(splitlist[1][2])
if name1 not in scores.keys():
scores[name1] = 0
if name2 not in scores.keys():
scores[name2] = 0
if scores1 > scores2:
scores[name1] = scores[name1] + 3
elif scores1 == scores2:
scores[name1] = scores[name1] + 1
scores[name2] = scores[name2] + 1
elif scores1 < scores2:
scores[name2] = scores[name2] + 3
result = sorted(scores.items(), key=lambda x: (-x[1], x[0]))
for j in result:
if j != result[-1]:
print(*j, end=',')
else:
print(*j)