题解 | #合并表记录#
合并表记录
https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int index, value;
int indexx[n];//存索引
int valuee[n];//存value
//输入
for(int i = 0; i < n; i ++){
cin >> index >> value;
valuee[i] = value;
indexx[i] = index;
}
//合并
for(int i = 0; i < n; i ++){
for(int j = i + 1; j < n; j ++){
if(indexx[i] == indexx[j]){
valuee[i] += valuee[j];
indexx[j] = indexx[n-1];
valuee[j] = valuee[n-1];
n --;
j --;
}
}
}
//index升序排列
for(int i = n - 1; i > 0; i --){
for(int j = 0; j < i; j ++){
if(indexx[j] > indexx[j+1]){
int temp = indexx[j];
indexx[j] = indexx[j+1];
indexx[j+1] = temp;
temp = valuee[j];
valuee[j] = valuee[j+1];
valuee[j+1] = temp;
}
}
}
for(int i = 0; i < n; i ++){
cout << indexx[i] << " " << valuee[i] << endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")

