1085 PAT单位排行 (25 分) python

最后两个测试点超时,得分20
N = int(input())
dict1 = {}
for i in range(N):
    ipt_list = input().split(" ")
    ipt_list[2] = ipt_list[2].lower()
    ipt_list[1] = int(ipt_list[1])
    if ipt_list[2] not in dict1.keys():
        dict1[ipt_list[2]] = [0,0]
        if ipt_list[0][0] == "B":
            dict1[ipt_list[2]][0] = ipt_list[1]//1.5
        elif ipt_list[0][0] == "A":
            dict1[ipt_list[2]][0] = ipt_list[1]
        elif ipt_list[0][0] == "T":
            dict1[ipt_list[2]][0] = int(ipt_list[1]*1.5)
    else:
        if ipt_list[0][0] == "B":
            dict1[ipt_list[2]][0] += ipt_list[1]//1.5
        elif ipt_list[0][0] == "A":
            dict1[ipt_list[2]][0] += ipt_list[1]
        elif ipt_list[0][0] == "T":
            dict1[ipt_list[2]][0] += int(ipt_list[1]*1.5)

    dict1[ipt_list[2]][1] += 1
#dict1 = {'au': [192.0, 3], 'lanx': [81.0, 2], 'cmu': [192, 2], 'hypu': [81, 2], 'pku': [100, 1]}
dict1_list = sorted(dict1.items(),key=lambda a:(-a[1][0],a[1][1],a[0]))

a = 1
print(len(dict1_list))
for i in range(len(dict1_list)):
    if dict1_list[i-1][1][0] == dict1_list[i][1][0]:
        print("%d %s %d %d"%(a,dict1_list[i][0],dict1_list[i][1][0],dict1_list[i][1][1]))
    else:
        print("%d %s %d %d" % (i+1, dict1_list[i][0], dict1_list[i][1][0], dict1_list[i][1][1]))
        a = i+1

猜你喜欢

转载自blog.csdn.net/weixin_41775301/article/details/87903215
今日推荐