Pagini recente » Cod sursa (job #2097598) | Monitorul de evaluare | Cod sursa (job #1120337) | Cod sursa (job #1630166) | Cod sursa (job #989912)
Cod sursa(job #989912)
#include<fstream>
using namespace std;
const int mod=9999991;
int n;
long long pow(long long n, int p) {
long long rez=1;
while (p>0)
if (p%2==0) { n=(n*n)%mod; p/=2; }
else { rez=(rez*n)%mod; --p; }
return(rez%mod);
}
int c(int n, int k) {
long long p2=k,p3=n-k,fact=1,p1;
for (int i=1; i<=n; ++i){
if (i-1==p2) p2=fact;
if (i-1==p3) p3=fact;
fact=(fact*i)%mod;
}
p1=(p2*p3)%mod;
return((fact*pow(p1,mod-2))%mod);
}
int main(void) {
ifstream fin("dirichlet.in");
ofstream fout("dirichlet.out");
fin>>n;
long long sol=(c(2*n-1,n)-c(2*n-1,n+1)+mod)%mod;
fout<<sol;
return(0);
}