Pagini recente » Cod sursa (job #611562) | Cod sursa (job #2142875) | Cod sursa (job #1221439) | Cod sursa (job #2875783) | Cod sursa (job #2761195)
#include <iostream>
#include <fstream>
#define ll long long
#define NMAX 1000000
#define MOD 9999991
using namespace std;
ifstream fin("dirichlet.in");
ofstream fout("dirichlet.out");
ll n;
int fact[2*NMAX+10];
void precalc()
{ fact[0] = 1;
for(int i=1; i<=2*NMAX; i++)
fact[i] = (ll)fact[i-1] * (ll)i % MOD;
}
ll lgput(ll a, ll n)
{ if(!n) return 1;
if(n % 2 == 0) return lgput(a*a % MOD, n/2);
return a * lgput(a*a % MOD, n/2) % MOD;
}
ll C(ll n, ll k)
{ ll val1 = (ll)fact[n], val2 = (ll)fact[k] * (ll)fact[n-k] % MOD;
return val1 * lgput(val2, MOD - 2) % MOD;
}
int main()
{
precalc();
fin >> n;
fout << C(2 * n, n) * lgput(n + 1, MOD - 2) % MOD;
return 0;
}