HJ8 合并表记录 10:35
简单 通过率:32.71% 时间限制:1秒 空间限制:32M
知识点哈希
描述
数据表中,一条记录包含表索引和数值两个值。请对表索引相同的记录进行合并(即将相同索引的数值进行求和运算),随后按照索引值的大小从小到大依次输出。
输入描述:
第一行输入一个整数 n(1≦n≦500)代表数据表的记录数。
此后 nn 行,第 ii 行输入两个整数 xi,yi(0≦xi≦11 111 111; 1≦yi≦105) 代表数据表的第 i 条记录的索引和数值。
输出描述:
一共若干行(视输入数据变化),第 i 行输出两个整数,代表合并后数据表中第 i 条记录的索引和数值。
示例1
输入:
4 0 1 0 2 1 2 3 4
复制输出:
0 3 1 2 3 4
复制说明:
在这个样例中,第 1,2 条记录索引相同,合并数值为 1+2=3。
示例2
输入:
2 0 1 0 1
复制输出:
0 2
解答
n=int(input())
dic={}# 输入值并动态更新字典
for i in range(n):lines=input().split()key=int(lines[0])value=int(lines[1])dic[key]=dic.get(key,0)+value# 对字典中的所有键进行升序排序,并遍历排序后的键
for each in sorted(dic):print(each,dic[each]);