Pagini recente » Cod sursa (job #1213321) | Cod sursa (job #2073616) | Cod sursa (job #2744898) | Cod sursa (job #165549) | Cod sursa (job #638853)
Cod sursa(job #638853)
#include <fstream>
#include <cstdio>
using namespace std;
#define m 9999991
typedef long long I64;
I64 n,f[2000001],sol;
void read ()
{
ifstream in ("dirichlet.in");
in>>n;
}
I64 put (I64 x,I64 y)
{
I64 rz=1;
for(;y;y>>=1)
{
if(y&1)
rz=(rz*x)%m;
x=(x*x)%m;
}
return rz;
}
I64 comb (I64 x,I64 y){
return (((f[x]*put(f[x-y],m-2))%m)*put(f[y],m-2))%m;}
void solve ()
{
f[0]=1;
int nn=(n<<1);
for(int i=1;i<=nn;++i)
f[i]=(f[i-1]*i)%m;
sol=comb(n<<1,n)-comb(n<<1,n+1);
if(sol<0)
sol+=m;
}
void out ()
{
freopen ("dirichlet.out","w",stdout);
printf("%lld",sol);
}
int main ()
{
read ();
solve ();
out ();
return 0;
}