题解 | 合并表记录
合并表记录
https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
#include <iostream>
using namespace std;
typedef struct {
int index;
int value;
bool flag;
} item;
int main() {
int n;
cin >> n;
item a[n];
for (int i = 0; i < n; i++) {
cin >> a[i].index >> a[i].value;
a[i].flag = true;
}
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (a[i].index == a[j].index && a[j].flag) {
a[i].value += a[j].value;
a[j].flag = false;
}
}
}
int index;
for (int i = 0; i < n; i++) {
index=0;
int min=11111112;
bool ischange=false;
for (int j = 0; j < n; j++) {
if (min > a[j].index && a[j].flag) {
min = a[j].index;
index = j;
ischange=true;
}
}
if(!ischange) break;
cout << a[index].index << " " << a[index].value << endl;
a[index].flag = false;
}
return 0;
}
// 64 位输出请用 printf("%lld")
查看9道真题和解析