题解 | #合并表记录#
合并表记录
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")