题目好像没提指数是正数,不过根据描述可以猜出来,试了下果然。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iomanip>
using namespace std;
#define MAX 1000+10
double poly[MAX];
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
int n = 0;
cin >> n;
while (n--)
{
int p = 0;
double a = 0;
cin >> p >> a;
poly[p] += a;
}
cin >> n;
while (n--)
{
int p = 0;
double a = 0;
cin >> p >> a;
poly[p] += a;
}
int cnt = 0, t = 0;
for (int i = MAX-1; i >= 0; i--)
{
if (poly[i] != 0)
{
cnt++;
t = i;
}
}
cout << cnt;
if (cnt != 0)
cout << " ";
for (int i = MAX-1; i >= t; i--)
{
if (poly[i] != 0)
{
cout << fixed << setprecision(1) << i << " " << poly[i];
if (i != t)
cout << " ";
}
}
return 0;
}