Pagini recente » Cod sursa (job #1482945) | Cod sursa (job #1716729) | Cod sursa (job #2471085) | Cod sursa (job #2112085) | Cod sursa (job #2158949)
#include <iostream>
#include <cstdio>
using namespace std;
const int MOD = 9999991;
const int NMAX = 1000005;
int n;
int fact[2 * NMAX];
void computeFact(int upTo) {
fact[0] = 1;
for (int i = 1; i <= upTo; i++) {
fact[i] = (fact[i - 1] * i) % MOD;
}
}
long long logPow(long long n, long long p) {
long long result = 1;
for (; p; p >>= 1) {
if (p & 1)
result = (result * n) % MOD;
n = (n * n) % MOD;
}
return result;
}
long long invers(long long n) {
return logPow(n, MOD - 2);
}
long long comb(int n, int k) {
return 1LL * fact[n] * invers(1LL * fact[n - k] * fact[k] % MOD) % MOD;
}
int main() {
freopen("dirichlet.in", "r", stdin);
freopen("dirichlet.out", "w", stdout);
scanf("%d ", &n);
computeFact(2 * n);
printf("%Ld\n", comb(2 * n, n) * invers(n + 1) % MOD);
return 0;
}