1002 A+B for Polynomials 25 points
This time, you are supposed to find A+B where A and B are two polynomials.
Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:
K N 1 a N 1 N 2 a N 2 . . . N K a N K K \ N_1 \ a_{N_1} \ N_2 \ a_{N_2} \ … \ N_K \ a_{N_K} K N1 aN1 N2 aN2 ... NK aNK
where K K K is the number of nonzero terms in the polynomial, N i N_i Ni and a N i ( i = 1 , 2 , ⋯ , K ) a_{N_i}(i=1,2,⋯,K) aNi(i=1,2,⋯,K) are the exponents and coefficients, respectively. It is given that 1 ≤ K ≤ 10 , 0 ≤ N K < ⋯ < N 2 < N 1 ≤ 1000 1≤K≤10, 0≤N_K<⋯<N_2<N_1≤1000 1≤K≤10,0≤NK<⋯<N2<N1≤1000.
For each test case you should output the sum of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate to 1 decimal place.
2 1 2.4 0 3.2
2 2 1.5 1 0.5
3 2 1.5 1 2.9 0 3.2
#include <iostream>
using namespace std;
void do_union(double exponents_all[]);
int main()
{
int n, exponents;
double coefficients;
double exponents_all[1001] = {
0 };
//int output_all[10];
for (int i = 0; i < 2; i++)
{
cin >> n;
while (n != 0)
{
cin >> exponents >> coefficients;
exponents_all[exponents] += coefficients;
n--;
}
}
do_union(exponents_all);
}
void do_union(double exponents_all[])
{
int count = 0;
for (int i = 1000; i >= 0; i--)
{
if (exponents_all[i] != 0)
count++;
}
cout << count;
for (int j = 1000; j >= 0; j--)
{
if (exponents_all[j] != 0)
printf(" %d %.1f", j, exponents_all[j]);
}
}
After my code was submitted, there was a sample that did not pass it, and I was very puzzled after deducting two points.Since Chen Yueyu did not announce what the test was, according to my experience, there may be inputcoefficient 0The situation.According to the title, he has no restrictionscoefficient 0The situation of
, but for the sake of more concise the method, I amvoid do_union(double exponents_all[])
Thefor
cycle jumps with a coefficient of 0.I didn’t expect a more concise method for the time being, I would be wrong when it was wrong. If a friend can see the problem, please be positive
- The above problem has been solved