注意去掉0的位
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <vector>
#include <map>
#include <stack>
#include <queue>
#include <algorithm>
#include <set>
using namespace std;
double polRs[1001];
int main(){
int k,nk,maxIndex;
double ank;
int count = 0;
int i;
memset(polRs,0,sizeof(int));
scanf("%d",&k);
maxIndex = 0;
while(k--){
scanf("%d%lf",&nk,&ank);
polRs[nk] += ank;
if(nk>maxIndex)
maxIndex=nk;
}
scanf("%d",&k);
while(k--){
scanf("%d%lf",&nk,&ank);
polRs[nk] += ank;
if(nk>maxIndex)
maxIndex=nk;
}
for(i=maxIndex;i>=0;i--)
if(polRs[i])
count++;
printf("%d",count);
for(i=maxIndex;i>=0;i--)
if(polRs[i])
printf(" %d %.1lf",i,polRs[i]);
return 0;
}