#include #include #include #include #include #define N 50010 using namespace std; const double pi=acos(-1); const complex I(0,1); const double eps=1e-6; char aa[N],bb[N]; int ans[4*N]; complex a[4*N],b[4*N]; int n; void initial() { int lenA=strlen(aa),lenB=strlen(bb); n=max(lenA,lenB); double t=log2(n); int tt=int(t); if(t-tt>0)tt++; n=1<<(tt+1); int i; for(i=0; i * a) { for(int i=1; i>=1); if(j>i)swap(a[i],a[j]); } } void iterative_FFT(complex *a,int sig) { bitReverse(a); for(int m=2; m<=n; m<<=1) { int mh =m>>1; for(int i=0; i wi=exp(i*sig*pi/mh*I); for(int j=i; j u=a[j],t=wi*a[k];; a[j]=u+t; a[k]=u-t; } } } if(sig==-1)for(int i=0; i=0)cout<