1013: Polynomial Multiplication
Status | In/Out | TIME Limit | MEMORY Limit | Submit Times | Solved Users | JUDGE TYPE |
---|---|---|---|---|---|---|
stdin/stdout | 3s | 8192K | 3900 | 652 | Standard |
A polynomial is a sum of terms, where each term is a coefficient multiplied by the variable x raised to some nonnegative integer power. The largest such power is referred to as the degree of the polynomial. For example: x^3+x^2+x+1, x^3+x, x^2, and 1 are all polynomials.
2 4 1 2 1 5 0 3 1 2 0 1 3 1 0 1 1 3 2 0 1 2
x^7 + 4x^6 + 5x^5 + 8x^4 + 12x^3 + x^2 + 5x 2x^6 + 3x^4 + 4x^3 + x^2 + 3x + 2
#include<stdio.h>
void reverse(int *p,int n)
{
int i,j,t;
for(i=0,j=n;i<j;i++,j--)
{
t=*(p+i);
*(p+i)=*(p+j);
*(p+j)=t;
}
}
int main()
{
int n,t,a,b,i,j,s;
scanf("%d",&n);
for(t=0;t<n;t++)
{
int f[30]={0},g[30]={0},z[30]={0};
scanf("%d",&a);
for(i=0;i<=a;i++)
scanf("%d",f+i);
reverse(f,a);
scanf("%d",&b);
for(j=0;j<=b;j++)
scanf("%d",g+j);
reverse(g,b);
for(i=0;i<=a;i++)
for(j=0;j<=b;j++)
z[i+j]+=f[i]*g[j];
s=a+b;
int al = 0;
while(s >= 0)
{
if(z[s] != 0)
{
if(al == 0)
{
al = 1;
}
else
printf(" + ");
if(z[s]!=1 || s==0)
printf("%d",z[s]);
if(s != 0)
{
printf("x");
if(s != 1)
printf("^%d", s);
}
}
--s;
}
if(al == 0) printf("0");
printf("/n");
}
return 0;
}