// luogu-judger-enable-o2
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using std::swap;
const double Pi=M_PI;
const int maxn=1e7+100;
int limit=1,l=0;
int r[maxn];
struct complex
{
double real,imag;
complex(double r=0,double i=0):real(r),imag(i){};
inline complex operator+ (const complex& c)
{
return complex(real+c.real,imag+c.imag);
}
inline complex operator- (const complex& c)
{
return complex(real-c.real,imag-c.imag);
}
inline complex operator* (const complex& c)
{
return complex(real*c.real-c.imag*imag,real*c.imag+c.real*imag);
}
void operator*= (const complex& c)
{
double t=real*c.real-c.imag*imag;
imag=real*c.imag+c.real*imag;
real=t;
}
};
inline void DFT(complex* A,int type)
{
for (register int i=0;i<limit;++i)
if (i<r[i]) swap(A[i],A[r[i]]);
for (register int mid=1;mid<limit;mid<<=1)
{
complex wn(cos(Pi/mid),type*sin(Pi/mid));
for (register int R=mid<<1,j=0;j<limit;j+=R)
{
complex w(1,0);
for (register int k=0;k<mid;++k,w*=wn)
{
complex x=A[j+k],y=A[j+k+mid]*w;
A[j+k]=x+y;
A[j+k+mid]=x-y;
}
}
}
}
//#define DEBUG
int main()
{
static complex a[maxn];
int n,m;
scanf("%d%d",&n,&m);
while (limit<=(n+m)) limit<<=1,++l;
for (register int i=0;i<=n;++i)
scanf("%lf",&a[i].real);
for (register int i=0;i<=m;++i)
scanf("%lf",&a[i].imag);
for (register int i=0;i<limit;++i)
r[i]=(r[i>>1]>>1)|((i&1)<<(l-1));
DFT(a,1);
for (register int i=0;i<=limit;++i)
a[i]*=a[i];
DFT(a,-1);
for (register int i=0;i<=n+m;++i)
printf("%d ",(int)(a[i].imag/(2*limit)+0.4));
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Subtask #1 Testcase #1 | 17.055 ms | 152 MB + 640 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #2 | 71.439 ms | 155 MB + 44 KB | Accepted | Score: 100 | 显示更多 |
| Subtask #1 Testcase #3 | 43.148 ms | 153 MB + 408 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #4 | 42.223 ms | 153 MB + 396 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #5 | 17.212 ms | 152 MB + 640 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #6 | 17.36 ms | 152 MB + 640 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #7 | 17.062 ms | 152 MB + 640 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #8 | 65.444 ms | 154 MB + 800 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #9 | 66.049 ms | 154 MB + 800 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #10 | 59.311 ms | 154 MB + 532 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #11 | 71.634 ms | 155 MB + 124 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #12 | 71.759 ms | 154 MB + 4 KB | Accepted | Score: 0 | 显示更多 |
| Subtask #1 Testcase #13 | 17.07 ms | 152 MB + 640 KB | Accepted | Score: 0 | 显示更多 |