题解
一道简单的模拟题,我没有做优化,空间复杂度会比较大。有兴趣的话可以借助STL来优化一下。
#include<cstdio>
#define EPS 1e-6
using namespace std;
int k, n;
float a;
float result[1010];
int main() {
scanf("%d", &k);
for(int i = 0; i < k; ++i) {
scanf("%d%f", &n, &a);
result[n] += a;
}
scanf("%d", &k);
for(int i = 0; i < k; ++i) {
scanf("%d%f", &n, &a);
result[n] += a;
}
int cnt = 0;
for(int i = 0; i < 1001; ++i) if(result[i] < -EPS || result[i] > EPS) ++cnt; // float,double中最好不要用==
printf("%d", cnt);
for(int i = 1000; i >= 0; --i) if(result[i] < -EPS || result[i] > EPS) printf(" %d %.1f", i, result[i]);
return 0;
}