1002 A+B多项式
这一次,你需要找到A+B的和,其中A和B的两个多项式。
输入规范
每个输入文件包含一个测试用例。每个用例占有2行,每行包含一个多项式信息K N1 aN1 N2 aN2 … NK aNK.其中K表示多项式中非零项个数,N和aNi(i = 1, 2, 3, …K)分别表示指数和系数。它们的取值范围为1<= K <= 10, 0 <= NK < … < N2 < N1 <= 1000
输出规范
对于每个测试用例你应该按照输入的格式在一行输出A和B的和。需要注意的式一行的结束没有多余的空格。请青雀到小数点后1位。
样例输入
2 1 2.4 0 3.2
2 2 1.5 1 0.5
样例输出
3 2 1.5 1 2.9 0 3.2
AC代码
#include<iostream>
using namespace std;
double value[1005]; //value[i]表示指数位i的系数和位多少
int main() {
int k;
cin >> k;
for(int i = 0; i < k; i++) {
int n;
double a;
cin >> n >> a;
value[n] += a;
}
cin >> k;
for(int i = 0; i < k; i++) {
int n;
double a;
cin >> n >> a;
value[n] += a;
}
int cnt = 0;
for(int i = 0; i < 1005; i++) {
if(value[i] != 0) {
cnt++;
}
}
cout << cnt;
for(int i = 1004; i >= 0; i--) {
if(value[i] != 0) {
printf(" %d %.1lf", i, value[i]);
}
}
return 0;
}