题解 | #合并表记录#
合并表记录
https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201?tpId=37&tqId=21231&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=
#include <iostream> #include <map> #include <vector> using namespace std; int main() { int n; while (cin >> n) { // 注意 while 处理多个 case map<int, int> arr; //有序 for (int i = 0; i < n; i++) { int k, v; cin>>k>>v; if(!arr.count(k)){ //用count则只需一次查找即可判断是否存在某个键 arr[k] = v; }else { arr[k] = v + arr[k]; } } for (auto it : arr) { //遍历arr中的键对 cout<< it.first <<' ' <<it.second<<endl; } } } // 64 位输出请用 printf("%lld")