Pagini recente » Borderou de evaluare (job #82968) | Borderou de evaluare (job #1556508) | 100112 | Borderou de evaluare (job #360088) | Cod sursa (job #3140810)
#include <fstream>
using namespace std;
ifstream f("dirichlet.in");
ofstream g("dirichlet.out");
const int MOD = 9999991;
int lgPow(int x, int p) {
int v = 1;
while(p > 0) {
if(p & 1)
v = 1LL * v * x % MOD;
x = 1LL * x * x % MOD;
p >>= 1;
}
return v;
}
inline int invMod(int n) {
return lgPow(n, MOD - 2);
}
int comb(int n, int k) {
if(k > n - k)
k = n - k;
int f = 1, c = 1;
for(int i = 1; i <= k; i++) {
c = 1LL * c * (n - i + 1) % MOD;
f = 1LL * f * i % MOD;
}
c = 1LL * c * invMod(f) % MOD;
return c;
}
int main() {
int n; f >> n;
g << comb(2 * n,n)*invMod(n + 1) % MOD;
}