2020牛客暑期多校训练营(第一场)J题

图片说明
#include<cstdio>
#include<cstdlib>
#define SF scanf
#define PF printf
typedef long long ll;
const int N=2000006;
const int P=998244353;
ll n,jc[N],dc[N];
ll fen(ll x){ //分数取模  fen(x)=(1/x)%P
	ll r=1,t=x,y=P-2;
	for(;y;y>>=1,t=t*t%P)if(y&1)r=r*t%P;
	return r%P;
}
int main(){
	jc[1]=1;
	for(int i=2;i<=1000000;i++){
		jc[i]=(jc[i-1]*(ll)i)%P; 
	}
	dc[1]=1;
	for(int i=2;i<=2000001;i++){
		dc[i]=(dc[i-1]* fen((ll)i))%P;
	}
	while(SF("%d",&n)!=EOF){
		PF("%lld\n",jc[n]*jc[n]%P*dc[(n<<1)+1]%P);
	}
	return 0;
}