简单的模拟问题,按照题意一步一步写就好
只要stl用的熟练,这道题非常简单,实在不建议用纯C,这道题就是一个好例子。

#include<stdio.h>
#include<iostream>
#include<set>
using namespace std;

int main(){
    float coefficients[1001]={0};
    int N;
    cin >> N;
    set<int> s;
    for(int i=0;i<N;i++){//指数做index
        int temp;
        cin >> temp;
        cin >> coefficients[temp];
        s.insert(temp);
    }
    cin >> N;
    for(int i=0;i<N;i++){
        int temp;
        cin >> temp;
        float temp1;
        cin >> temp1;
        coefficients[temp]+=temp1;
        if(coefficients[temp]==0) s.erase(temp);
        else s.insert(temp);
    }
    printf("%d",s.size());
    for(int i=1000;i>=0;i--){
        if(coefficients[i]!=0)
            printf(" %d %.1f",i,coefficients[i]);
    }
    return 0;
}