wssb

include<bits/stdc++.h>

using namespace std ;

long long mod;

long long exgcd(long long a,long long b,long long &x,long long &y){
if(b==0){
x=1,y=0;
return a;
}
long long ret = exgcd(b,a%b,x,y);
int xx=x,yy=y;
x=yy;
y=xx-(a/b)*yy;
return ret;
}

long long inv(long long x){
long long a,b;
exgcd(x,mod,a,b);
a = (a%mod + mod) % mod;
return a;
}

long long C(long long m,long long n){
long long ret = 1;
for(int i=m;i>=m-n+1;i--){
ret = i;
ret %= mod;
}
for(int i=1;i<=n;i++){
ret
= inv(i);
}
return ret;
}

int main(){
long long K;
cin>>K>>mod;
long long ans = C(2K,K) - C(2K,K+1);
ans += mod ;
if(ans >= mod) ans -= mod;
cout<<ans<<endl;
return 0;
}

猜你喜欢

转载自www.cnblogs.com/SINXIII/p/11222915.html
wss