#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //Copy from this line! typedef std::complex Complex; std::vector DFT(std::vector func, int size, int sign){ if(size==1) return func; std::vector result(size); std::vector func_a(size/2); std::vector func_b(size/2); for(int i=0;i InvDFT(std::vector func, int size){ std::vector result=DFT(func, size, -1); for(int i=0;i MultyplyFunction(std::vector func_f, std::vector func_g){ int min_size=func_f.size()+func_g.size()+1; int size=1; while(size func(size); for(int i=0;i>n; // std::vector> a(n+1),b(n+1); // a[0]=std::complex(0); // b[0]=std::complex(0); // for(int i=1;i<=n;i++){ // int x,y; // cin>>x>>y; // a[i]=std::complex(x); // b[i]=std::complex(y); // } // std::vector> c=MultyplyFunction(a,b); // for(int i=1;i<=2*n;i++){ // cout<>l>>m>>n; std::vector a(n+1); std::vector b(n+1); for(int i=0;i>v; a[v]=Complex(1); } for(int i=0;i>v; b[n-v]=Complex(1); } int q; cin>>q; std::vector result=MultyplyFunction(a,b); for(int i=n;i