6 2
5 3
3 12
1 6
0 20
-1 -1
6 2
5 3
2 12
1 6
0 20
-1 -1
6 1
1 1
-1 -1
5 -1
0 -1
-1 -1
1 1
-1 -1
1 -1
-1 -1
0
#include <stdio.h>
int main(){
int a[101] = {0};
int b[101] = {0};
int c[101]={0};
int x,y,max;
max = 0;
scanf("%d %d",&x,&y);
max = x;
a[x]+=y;
do{
scanf("%d %d",&x,&y);
a[x]+=y;
}while(x!=-1);
do{
scanf("%d %d",&x,&y);
b[x]+=y;
if(x>max)
max=x;
}while(x !=-1);
int m=1; //判断系数是否为第一个幂
int n=0; //判断是否输出为0
for(;max>=0;max--){
if(a[max]+b[max]>0){
if(m!=1)
printf("+");
if(a[max]+b[max]!=1)
printf("%d",a[max]+b[max]);
if(a[max]+b[max]==1)
printf("");
if(max > 0)
printf("x");
if(max > 1)
printf("%d",max);
m++; //让输出+号
n++; //用来统计跳出循环后做是否和为0的判断
}
else if(a[max]+b[max]<0){
if(a[max]+b[max]!=-1)
printf("%d",a[max]+b[max]);
else if(a[max]+b[max]==-1 &&max==0)
printf("-1");
else
printf("-");
if(max > 0)
printf("x");
if(max > 1)
printf("%d",max);
m++;
n++;
}
}
if(n==0)
printf("0");
}