HJ8. 合并表记录
描述
输入描述
先输入键值对的个数n(1 <= n <= 500)
接下来n行每行输入成对的index和value值,以空格隔开
输出描述
输出合并后的键值对(多行)
示例1
输入:
4 0 1 0 2 1 2 3 4
输出:
0 3 1 2 3 4
示例2
输入:
3 0 1 0 2 8 9
输出:
0 3 8 9
C 解法, 执行用时: 1ms, 内存消耗: 256KB, 提交时间: 2020-07-07
#include "stdio.h" int main() { int n,a,b,i=0,num[1000]={0}; while(scanf("%d",&n)!= EOF ) { for(i=0;i<n;i++) { scanf("%d %d",&a,&b); num[a]+=b; } for(i=0;i<n;i++) { if(num[i]==0) continue; else printf("%d %d\n",i,num[i]); } } return 0; }
Pascal 解法, 执行用时: 1ms, 内存消耗: 256KB, 提交时间: 2020-02-29
var arr: array[0..1000] of Integer; i, iCount, iKey, iValue: Integer; begin while not Eof do begin readln(iCount); if iCount > 0 then begin //for i := 0 to length(arr) do // arr[i] := 0; fillchar(arr, sizeof(arr), 0); for i := 1 to iCount do begin readln(iKey, iValue); arr[iKey] := arr[iKey] + iValue; end; for i := 0 to length(arr) - 1 do if arr[i] <> 0 then writeln(i, ' ', arr[i]); end; end; end.