#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,k,mod;
ll m[55];
ll C(int n,int k)
{
if(k>=n-1) return m[n];
ll ans=0;
for(int i=1;i<=n;i++)
{
if(i==n-1)
ans=(ans+m[k]*(n-1)%mod)%mod;
else if(i==n)
ans=(ans+C(n-1,k))%mod;
else if(i<=k)
ans=(ans+m[k-1])%mod;
else
ans=(ans+m[k])%mod;
}
return ans;
}
int main()
{
int t,cnt=0;
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
ll ans=0;
scanf("%d%d%d",&n,&k,&mod);
m[0]=m[1]=1;
for(int i=2;i<=50;i++)
m[i]=1ll*m[i-1]*i%mod;
ans=C(n,k);
printf("Case #%d: %lld\n",++cnt,ans);
}
}
2018-2019 ACM-ICPC, Asia Shenyang Regional Contest C
最新推荐文章于 2021-11-01 21:32:27 发布