今天开始准备蓝桥杯,PAT咯,记录一下用了四十分钟做的第一道题
解法简单暴力,小白也能看得懂,不懂可下方留言.
num = int(input())
dirc = {}
totalRankDic = {}
part_rank = {}
place = {}
for i in range(num):
dirc_in = {}
peo = int(input())
for j in range(peo):
id,score = input().split(" ")
score = int(score)
place[id] = i+1
dirc_in[id] = score
dirc[id] = score
new_sys1 = sorted(dirc_in.items(), key=lambda d: (d[1],-int(d[0])), reverse=True)
for i in range(len(new_sys1)):
if i == 0:
part_rank[new_sys1[i][0]] = 1
else:
if new_sys1[i][1] == new_sys1[i-1][1]:
part_rank[new_sys1[i][0]] = part_rank[new_sys1[i-1][0]]
else:
part_rank[new_sys1[i][0]] = i + 1
total_rank = sorted(dirc.items(), key=lambda d: (d[1],-int(d[0])), reverse=True)
for i in range(len(total_rank)):
if i == 0:
totalRankDic[total_rank[i][0]] = 1
else:
if total_rank[i][1] == total_rank[i-1][1]:
totalRankDic[total_rank[i][0]] = totalRankDic[total_rank[i-1][0]]
else:
totalRankDic[total_rank[i][0]] = i + 1
print(len(dirc))
for key,value in totalRankDic.items():
print(key+' '+ str(value)+' '+ str(place[key])+' '+ str(part_rank[key]))