#include <iostream>
#include <map>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
int k=0,ex=0;
double coe=0;
map<int,double> imap;
typedef map<int,double>::iterator ITE;
cin>>k;
while(k--)
{
cin>>ex>>coe;
imap.insert(make_pair(-ex,coe));
}
cin>>k;
while(k--)
{
cin>>ex>>coe;
if(imap.count(-ex)!=0)
{
if(fabs(imap[-ex]+coe)<1e-5)
{
ITE itedel = imap.find(-ex);
imap.erase(itedel);
}
else
imap[-ex]+=coe;
}
else
imap.insert(make_pair(-ex,coe));
}
cout<<imap.size();
for(ITE ite=imap.begin();ite!=imap.end();++ite)
{
cout<<" "<<-(ite->first)<<" "<<fixed<<setprecision(1)<<ite->second;
}
cout<<endl;
return 0;
}
哈希原理,注意系数为0的项要删除掉。