Cod sursa(job #633643)

Utilizator cezar305Mr. Noname cezar305 Data 14 noiembrie 2011 12:21:16
Problema Dirichlet Scor Ascuns
Compilator cpp Status done
Runda Marime 0.63 kb
// Mihai Gheorghe
// O(N + logN)

#include <stdio.h>

#include <iostream>

using namespace std;

const long long mod = 9999991;

int n;

long long pow (long long nr, int p)
{
	if (p == 1)
		return nr;
	long long x = pow (nr, p / 2);
	x = x * x % mod;
	if (p & 1)
		x = x * nr % mod;
	return x;
}

int main ()
{
	freopen ("dirichlet.in", "r", stdin);
	freopen ("dirichlet.out", "w", stdout);
	
	cin >> n;
	
	int i;
	long long p1 = 1, p2 = 1;
	
	for (i = n + 2; i <= 2 * n; i ++)
		p1 = p1 * i % mod;
	for (i = 2; i <= n; i ++)
		p2 = p2 * i % mod;
	cout << p1 * pow (p2, mod - 2) % mod;
	
	return 0;
}