在 t 秒内,走 x 次向上的,走 y 次向右的,所以答案是组合数学。
#include<stdio.h>
#include<algorithm>
using namespace std;
typedef long long ll;
const ll mod=998244353;
const int N=1e5;
ll jc[N],inv[N];
ll quick_mod(ll a,ll b) {
ll ans=1;
a%=mod;
while(b) {
if(b&1)ans=ans*a%mod;
b>>=1;
a=a*a%mod;
}
return ans%mod;
}
ll ycljc() {
jc[0]=1;
for(int i=1; i<N; ++i) {
jc[i]=jc[i-1]*i%mod;
}
inv[N-1]=quick_mod(jc[N-1],mod-2);
for(int i=N-2; i>=0; --i) {
inv[i]=inv[i+1]*(i+1)%mod;
}
}
ll C(int n,int m) {
return jc[n]*inv[m]%mod*inv[n-m]%mod;
}
int main() {
ycljc();
int T;
scanf("%d",&T);
while(T--) {
ll n,m,k;
scanf("%lld %lld %lld",&n,&m,&k);
if(n+m>k) {
printf("0\n");
} else {
ll ans=1ll*C(k,n)*C(k-n,m)%mod;
printf("%lld\n",ans);
}
}
return 0;
}