Cod sursa(job #636619)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 19 noiembrie 2011 21:51:06
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda .com 2011 Marime 0.66 kb
#include <cstdio>

typedef long long LL;

const int NMAX = 1000001;
const int MOD = 9999991;

LL pow(int x, int n)
{
	LL r = 1;
	LL p = x;
	while (n)
	{
		if (n&1)
			r = (r * p) % MOD;
		n >>= 1;
		p = (p * p) %MOD;
	}
	return r;
}

int main()
{
	int n;
	freopen("dirichlet.in", "r", stdin);
	scanf("%d", &n);
	
	LL a = 1;
	for (int i = 2; i <= n; ++i)
		a = (a * i) % MOD;
		
	LL b = a;
	LL c = (a * (n + 1)) % MOD;
	
	for (int i = n+1; i <= 2*n; ++i)
		a = (a * i) %MOD;
		
	b = (b * c) % MOD;
	b = pow(b, MOD - 2);
	
	a = (a * b)% MOD;
	
	freopen("dirichlet.out", "w", stdout);
	printf("%d\n", (int)a);
	
	return 0;
}