提交时间:2025-05-11 13:25:07

运行 ID: 37788

#include<bits/stdc++.h> #define up(i,l,r) for(int i=(l);i<=(r);++i) #define down(i,l,r) for(int i=(l);i>=(r);--i) #define pi pair<int,int> #define p1 first #define p2 second #define m_p make_pair #define p_b push_back using namespace std; typedef long long ll; const int maxn=3e6+10,mod=998244353; inline ll read(){ ll x=0;short t=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')t=-1;ch=getchar();} while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar(); return x*t; } const int N=3e6; int jc[maxn],jc_inv[maxn]; int qp(int a,int b){ int res=1; while(b){ if(b&1)res=res*1ll*a%mod; a=a*1ll*a%mod;b>>=1; }return res; } void init(){ jc[0]=1;up(i,1,N)jc[i]=jc[i-1]*1ll*i%mod; jc_inv[N]=qp(jc[N],mod-2);down(i,N,1)jc_inv[i-1]=jc_inv[i]*1ll*i%mod; } int C(int n,int m){return jc[m]*1ll*jc_inv[m-n]%mod*1ll*jc_inv[n]%mod;} int iC(int n,int m){return jc_inv[m]*1ll*jc[m-n]%mod*1ll*jc[n]%mod;} int sol(int a,int b,int c){ int res=1; up(i,1,a)res=res*1ll*C(b,a+c-i+b)%mod*1ll*iC(b,a+b-i)%mod; return res; } void slv(){init(); int n=read(),m=read(),k=read(); int res=(sol(n,m,k)-sol(n,m,k-1)+mod)%mod; cout<<res; } int main(){ //freopen("mountain.in","r",stdin),freopen("mountain.out","w",stdout); slv(); return 0; }