题解 | #HJ8 合并表记录#
合并表记录
http://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
Python 版本
n = int(input())
table = {}
for i in range(n):
k, v = map(int, input().split(' '))
if k in table:
table[k] += v
else:
table[k] = v
k_list = list(table.keys())
k_list.sort()
for k in k_list:
print(k, table[k])
C语言版本
#include <stdio.h>
#include <stdlib.h>
typedef struct kvTag {
int k;
int v;
} kv;
int cmp(const void* a, const void* b) {
return ((*(kv *)a).k - (*(kv *)b).k);
}
int main() {
int n;
scanf("%d", &n);
kv kvs[n];
for (int i = 0; i < n; i++) {
scanf("%d%d", &kvs[i].k, &kvs[i].v);
}
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {
if (kvs[i].k >= 0 && kvs[i].k == kvs[j].k) {
kvs[i].v += kvs[j].v;
kvs[j].k = -1;
kvs[j].v = 0;
}
}
}
qsort(kvs, n, sizeof(kv), cmp);
for (int i = 0; i < n; i++) {
if (kvs[i].k >= 0)
printf("%d %d\n", kvs[i].k, kvs[i].v);
}
return 0;
}