Java
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
private static final int N = 1010;
private static double[] a = new double[N];
private static double[] b = new double[N];
private static List<Pair> c = new ArrayList<>();
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
input(scanner, a);
input(scanner, b);
for (int i = N - 1; i >= 0; i--) {
if (a[i] + b[i] != 0) {
c.add(new Pair(i, a[i] + b[i]));
}
}
System.out.print(c.size());
for (Pair pair : c) {
System.out.printf(" %d %.1f", pair.exponent, pair.coefficient);
}
}
private static void input(Scanner scanner, double[] array) {
int n = scanner.nextInt();
while (n-- > 0) {
int exponent = scanner.nextInt();
double coefficient = scanner.nextDouble();
array[exponent] = coefficient;
}
}
private static class Pair {
int exponent;
double coefficient;
Pair(int exponent, double coefficient) {
this.exponent = exponent;
this.coefficient = coefficient;
}
}
}
C++
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
const int N = 1010;
double a[N], b[N];
vector <pair<int, double>> c; // (expon, coef)
void input(double a[]) {
int n;
scanf("%d", &n);
while (n--) {
int expon;
double coef;
scanf("%d%lf", &expon, &coef);
a[expon] = coef;
}
}
int main() {
input(a);
input(b);
for (int i = N - 1; i >= 0; i--)
if (a[i] + b[i])
c.push_back({i, a[i] + b[i]});
cout << c.size();
for (auto it: c)
printf(" %d %.1f", it.first, it.second);
return 0;
}