//1002. A+B for Polynomials (25)
//
//时间限制
//400 ms
//内存限制
//65536 kB
//代码长度限制
//16000 B
//判题程序
//Standard
//作者
//CHEN, Yue
//This time, you are supposed to find A+B where A and B are two polynomials.
//
//Input
//
//Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial: K N1 aN1 N2 aN2 ... NK aNK, where K is the number of nonzero terms in the polynomial, Ni and aNi (i=1, 2, ..., K) are the exponents and coefficients, respectively. It is given that 1 <= K <= 10,0 <= NK < ... < N2 < N1 <=1000.
//
//Output
//
//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.
//
//Sample Input
//2 1 2.4 0 3.2
//2 2 1.5 1 0.5
//Sample Output
//3 2 1.5 1 2.9 0 3.2
#include "stdafx.h"
#include "stdio.h"
#include "iostream"
#include "string.h"
#include "stdlib.h"
#include "string"
#include "algorithm"
using namespace std;
float a[1010],b[1010],c[1010];
int main()
{
int k1,k2;
while(cin>>k1){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(int i =0;i<k1;i++){
int j;
cin>>j;
cin>>a[j];
}
cin>>k2;
for(int i = 0;i<k2;i++){
int k;
cin>>k;
cin>>b[k];
}
int count = 0;
for(int i = 1002;i>=0;i--){
c[i] = a[i]+b[i];
if(c[i])
count++;
}
cout<<count;
for(int i = 1002;i>=0;i--){
if(c[i])
printf(" %d %.1lf",i,c[i]);
//cout<<" "<<i<<" "<<c[i];
}
cout<<endl;
}
return 0;
}
PAT_1002.A+B for Polynomials
最新推荐文章于 2024-01-28 22:42:58 发布