description
输入名字和点数,如果名字重复则点数累加,点数可以为负数,计算点数最大者,如果点数相同则最先达到最大点数的为最大者。
input
包含一个整数n(1<=n<=1000),下面包含n行,每行为名字和点数,点数范围-1000到1000
3
mike 3
andrew 5
mike 2
3
andrew 3
andrew 2
mike 5
output
andrew
andrew
solution
使用字典累加,用列表保存状态即可
import pdb
p, r, n = [], {}, int(input())
for i in range(n):
a, b = input().split()
b = int(b)
r[a] = r.get(a, 0)+b
p.append([r[a], a])
m = max(r.values())
# pdb.set_trace()
for n, a in p:
if n >= m and r[a] >= m:
print(a)
break