Pagini recente » Diferente pentru utilizator/mihnea.anghel intre reviziile 30 si 29 | Cel mai cartof | Cod sursa (job #401030) | Cod sursa (job #2080979) | Cod sursa (job #638861)
Cod sursa(job #638861)
#include <fstream>
#include <cstdio>
using namespace std;
#define m 9999991
int n,f[2000001],sol;
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;
f[0]=1;
int nn=(n<<1);
for(int i=1;i<=nn;++i)
f[i]=(1LL*f[i-1]*i)%m;
sol=comb(n<<1,n)-comb(n<<1,n+1);
if(sol<0)
sol+=m;
freopen ("dirichlet.out","w",stdout);
printf("%d",sol);
return 0;
}