#include <iostream>
#include <bits/stdc++.h>
using namespace std;
vector<pair<int,int>> mergeArrays(vector<pair<int,int>> a,vector<pair<int,int>> b)
{
vector<pair<int,int>> ans;
int aSize = a.size();
int bSize = b.size();
int i=0;
int j=0;
while(i<a.size() && j <b.size())
{
if(a[i].first==b[j].first)
{
i++;
j++;
ans.push_back({a[i].first,(a[i].second+b[j].second)});
}
if(a[i].first < b[j].first)
{
ans.push_back({a[i].first,(a[i].second+b[j].second)});
i++;
}
if(a[i].first > b[j].first)
{
ans.push_back({b[j].first,(a[i].second+b[j].second)});
j++;
}
}
while(i<aSize)
{
ans.push_back({a[i].first,a[i].second});
i++;
}
while(j<bSize)
{
ans.push_back({b[j].first,b[j].second});
j++;
}
return ans;
}
int main() {
vector<pair<int,int>> a = {{1,3},{2,4}};
vector<pair<int,int>> b = {{12,14}};
vector<pair<int,int>> c = mergeArrays (a,b);
for(auto d : c)
{
cout<<d.first<<","<<d.second;
cout<<"\n";
}
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiB2ZWN0b3I8cGFpcjxpbnQsaW50Pj4gbWVyZ2VBcnJheXModmVjdG9yPHBhaXI8aW50LGludD4+IGEsdmVjdG9yPHBhaXI8aW50LGludD4+IGIpCgp7Cgl2ZWN0b3I8cGFpcjxpbnQsaW50Pj4gYW5zOwoJaW50IGFTaXplID0gYS5zaXplKCk7CglpbnQgYlNpemUgPSBiLnNpemUoKTsKCWludCBpPTA7CglpbnQgaj0wOwoJd2hpbGUoaTxhLnNpemUoKSAmJiAgaiA8Yi5zaXplKCkpCgl7CgkJaWYoYVtpXS5maXJzdD09YltqXS5maXJzdCkKCQl7CgkJCWkrKzsKCQkJaisrOwoJCQlhbnMucHVzaF9iYWNrKHthW2ldLmZpcnN0LChhW2ldLnNlY29uZCtiW2pdLnNlY29uZCl9KTsKCQl9CgkJaWYoYVtpXS5maXJzdCA8IGJbal0uZmlyc3QpCgkJewoJCWFucy5wdXNoX2JhY2soe2FbaV0uZmlyc3QsKGFbaV0uc2Vjb25kK2Jbal0uc2Vjb25kKX0pOwoJCWkrKzsKCQl9CgkJaWYoYVtpXS5maXJzdCA+IGJbal0uZmlyc3QpCgkJewoJCWFucy5wdXNoX2JhY2soe2Jbal0uZmlyc3QsKGFbaV0uc2Vjb25kK2Jbal0uc2Vjb25kKX0pOwoJCWorKzsKCQl9CgkJCgl9CgkJd2hpbGUoaTxhU2l6ZSkKCQl7CgkJCWFucy5wdXNoX2JhY2soe2FbaV0uZmlyc3QsYVtpXS5zZWNvbmR9KTsKCQkJaSsrOwoJCX0KCQl3aGlsZShqPGJTaXplKQoJCXsKCQkJYW5zLnB1c2hfYmFjayh7YltqXS5maXJzdCxiW2pdLnNlY29uZH0pOwoJCQlqKys7CgkJfQoJCQoJCXJldHVybiBhbnM7Cn0KCmludCBtYWluKCkgewoJdmVjdG9yPHBhaXI8aW50LGludD4+IGEgPSB7ezEsM30sezIsNH19OwoJdmVjdG9yPHBhaXI8aW50LGludD4+IGIgPSB7ezEyLDE0fX07Cgl2ZWN0b3I8cGFpcjxpbnQsaW50Pj4gYyA9IG1lcmdlQXJyYXlzIChhLGIpOwoJZm9yKGF1dG8gZCA6IGMpCgl7CgkJY291dDw8ZC5maXJzdDw8IiwiPDxkLnNlY29uZDsKCQljb3V0PDwiXG4iOwoJfQoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJcmV0dXJuIDA7Cn0=