组合数+逆元
在#1测试点中10个输出有7个正确,剩余3个都输出0
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n,m,p;
ll qp(ll a,ll b){
int res=1;
while (b){
if (b%2)res=res*a%p;
b/=2;
a=a*a%p;
}
return res;
}
int main(){
int t;
cin>>t;
while (t--){
cin>>n>>m>>p;
ll ans=1,k=1;
for (ll i=n+m;i>=n+1;i--)ans=ans*i%p;
for (ll i=m;i>=1;i--)k=k*i%p;
cout<<ans*qp(k,p-2)%p<<"\n";
}
}