Cod sursa(job #643887)

Utilizator d.andreiDiaconeasa Andrei d.andrei Data 4 decembrie 2011 16:51:02
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <cstdio>

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

#define mod 9999991

int A,B,p1,p2,p3;
int Q,N;

int go(int x, int p){
    if (p==1) return x;
    int sol=go(x,p>>1);
    sol=(1LL*sol*sol)%mod;
    if (p&1)
        sol=(1LL*sol*x)%mod;
    return sol;
}

int main(){
	
	int i;
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	
		
		scanf("%d", &N);
		
		//N=A-B+1;
		p1=p2=1;
		for (i=N+2;i<=2*N;++i)
			 p1=(1LL*p1*i)%mod;
		for (i=2;i<=N;++i)
			 p2=(1LL*p2*i)%mod;
		
		printf("%lld\n", (1LL*p1*go(p2,mod-2))%mod);

	
	
	return 0;
	
}