代码 :
#include#define ri register int#define add(a,b) ((a)+(b)>=mod?(a)+(b)-mod:(a)+(b))#define dec(a,b) ((a)>=(b)?(a)-(b):(a)-(b)+mod)#define mul(a,b) ((ll)(a)*(b)%mod)using namespace std;inline int read(){ int ans=0; char ch=getchar(); while(!isdigit(ch))ch=getchar(); while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar(); return ans;}typedef long long ll;const int N=1e5+5,mod=998244353;int n,lim,tim;vector A,B,pos;inline void init(const int&up){ lim=1,tim=0; while(lim<=up*2)lim<<=1,++tim; A.resize(lim),B.resize(lim),pos.resize(lim),pos[0]=0; for(ri i=0;i >1]>>1)|((i&1)<<(tim-1));}inline int ksm(int a,int p){ int ret=1;for(;p;p>>=1,a=mul(a,a))if(p&1)ret=mul(ret,a);return ret;}inline void ntt(vector &a,const int&type){ for(ri i=0;i >=1){ wn=ksm(typ,mult); for(ri j=0,len=mid<<1;j