Cod sursa(job #635482)

Utilizator d.andreiDiaconeasa Andrei d.andrei Data 19 noiembrie 2011 12:04:18
Problema Dirichlet Scor 8
Compilator cpp Status done
Runda .com 2011 Marime 0.94 kb
#include <cstdio>

#define file_in "dirichlet.in"
#define file_out "dirichlet.out"

#define MOD 9999991


long long n,s,res,inv[MOD],i,k;

long long my_pow(long long a,long long b)
{
    long long t;
    
    if (!b) 
		return 1;
    t=my_pow(a,b>>1);
    t=(t*t)%MOD;
    if (b&1)
		t=(t*a)%MOD;
    return t;
}

long long comb(long long n, long long k)
{
    long long i,t=1;

    if (k>n) 
		return 0;
    for (i=n-k+1;i<=n;++i)
        t=(t*i)%MOD;
    for (i=2;i<=k;++i)
        t=(t*inv[i])%MOD;
    return t;
}
    

int main(){
	
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%lld", &n);
	
	//for (i=1;i<MOD;++i)
      //  inv[i]=my_pow(i,MOD-2);

	//res=(comb(2*n,n))%MOD;
	//res=(res*inv[n+1])%MOD;
	res=1;
	k=n;
	n=2*n;
	 for (i=n-k+1;i<=n;++i)
           res=(res*i);
    for (i=2;i<=k;++i)
        res=(res/i);
	res/=(k+1);
	printf("%lld\n", res%MOD);
	
	return 0;
	
}