首页 > 试题广场 >

挖掘机技术哪家强(20)

[编程题]挖掘机技术哪家强(20)
  • 热度指数:19829 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。

输入描述:
输入在第1行给出不超过105的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号、及其比赛成绩(百分制),中间以空格分隔。


输出描述:
在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。
示例1

输入

6<br/>3 65<br/>2 80<br/>1 100<br/>2 70<br/>3 40<br/>3 0

输出

2 150
N = eval(input())
L = [[eval(j) for j in input().split()] for i in range(N)]
D = {}
for i in L: D[i[0]] = i[1] if i[0] not in D else D[i[0]] + i[1]
RESULT = max(zip(D.keys(), D.values()), key = lambda i: i[1])
print(' '.join((str(i) for i in RESULT)))

发表于 2019-08-29 16:53:40 回复(0)
# -*- coding : utf-8 -*-
import operator
n=int(input())
d={}
for i in range(n):
    school,score=input().split()
    if school not in d.keys():
        d[school]=0
        d[school]+=int(score)
    else:
        d[school]=d[school]+int(score)

d=sorted(d.items(),key=operator.itemgetter(1),reverse=True)
print(d[0][0],d[0][1])

发表于 2019-05-30 09:18:13 回复(0)
scoreD = [0]
N = int(input())
for i in range(N):
    school,score = map(int,input().split())
    if len(scoreD)<school+1:
        for j in range(school-len(scoreD)):
            scoreD.append(0)
        scoreD.append(score)
    else:
        scoreD[school] += score
print(scoreD.index(max(scoreD)),max(scoreD))

发表于 2019-03-08 10:39:46 回复(0)
#Python保存为字典就好,然后使用字典的值进行排序
while True:
    try:
        num = int(input())
        markDict = dict()
        for i in range(num):
            temp = input().split()
            if temp[0] not in markDict:     #学校编号不在字典中,创建一个
                markDict[temp[0]] = int(temp[1])    
            else:
                markDict[temp[0]] += int(temp[1])   #如果该学校编号已经存在,把成绩加进去
        result = sorted(markDict.items(),key=lambda x:x[1])
        print("%s %d" % result[-1])
    except Exception:
        break

编辑于 2018-09-22 11:04:45 回复(0)

python,使用defaultdict,特别适合。

from collections import defaultdict

a, dd = int(input()), defaultdict(int)
for i in range(a):
    a, b = map(int, input().split())
    dd[a] += b
result = max(dd.items(), key=lambda c: c[1])
print(str(result[0]) + " " + str(result[1]))
发表于 2017-10-13 08:12:46 回复(0)