Pagini recente » Cod sursa (job #2983308) | Cod sursa (job #1348439) | Autentificare | Cod sursa (job #287085) | Cod sursa (job #638995)
Cod sursa(job #638995)
#include <fstream>
#include <cstdio>
#include <vector>
using namespace std;
#define m 9999991
int n,sol;
vector<int> f;
int put (int x,int y)
{
int rz=1;
for(;y;y>>=1)
{
if(y&1)
rz=(1LL*rz*x)%m;
x=(1LL*x*x)%m;
}
return rz;
}
int comb (int x,int y){
return (((1LL*f[x]*put(f[x-y],m-2))%m)*put(f[y],m-2))%m;}
int main ()
{
ifstream in ("dirichlet.in");
in>>n;
n<<=1;
f.resize(n+1);
f[0]=1;
for(int i=1;i<=n;++i)
f[i]=(1LL*f[i-1]*i)%m;
sol=comb(n,n>>1)-comb(n,(n>>1)+1);
if(sol<0)
sol+=m;
freopen ("dirichlet.out","w",stdout);
printf("%d",sol);
return 0;
}