题解 | 合并表记录
#include <iostream> #include <map> #include <utility> using namespace std; int main() { int n; cin >> n; map<int, int> mapData; for (int i=0; i<n; i++) { int index, data; cin >> index >> data; map<int, int>::iterator iter = mapData.find(index); if (iter != mapData.end()) { iter->second += data; } else { mapData.insert(make_pair(index, data)); } } for (auto iter: mapData) { cout << iter.first << ' ' << iter.second << endl; } } // 64 位输出请用 printf("%lld")