Cod sursa(job #614079)

Utilizator cezar305Mr. Noname cezar305 Data 5 octombrie 2011 16:49:23
Problema Dirichlet Scor Ascuns
Compilator cpp Status done
Runda Marime 0.58 kb
#include <stdio.h>

#define MOD 9999991

int i,N,rez;

inline int put(int A, int B)
{
	int aux = 1;
	for (int i=0; (1<<i) <= B; ++i){
		if (B & (1<<i))
			aux = (1LL * aux * A) % MOD;
		A = (1LL * A * A) % MOD;
	}
	return aux;
}

int main()
{
	freopen("dirichlet.in","r",stdin);
	freopen("dirichlet.out","w",stdout);
	
	scanf("%d",&N);

	rez = 1;
	
	for (i=N+2; i<=2*N; ++i)
		rez = (1LL * rez * i) % MOD;
	
	int rez2 = 1;
	for (i=2; i<=N; ++i)
		rez2 = (1LL * rez2 * i) % MOD;
	
	rez = (1LL * rez * put(rez2, MOD-2)) % MOD; 
	
	printf("%d\n", rez);
	return 0;
}