Pagini recente » Cod sursa (job #1343204) | Cod sursa (job #3163357) | Cod sursa (job #1192188) | Cod sursa (job #1950670) | Cod sursa (job #2780122)
///Afisam numarul lui .Catalan (de ordin N)
#include <stdio.h>
using namespace std;
FILE *fin, *fout;
const int MOD = 9999991;
int N, a = 1, b = 1;
void euclid(int a, int b, int &d, int &x, int &y) {
if(b == 0) {
d = a;
x = 1;
y = 0;
} else {
int x0, y0;
euclid(b, a % b, d, x0, y0);
x = y0;
y = (x0 - (a / b) * y0);
}
}
inline int invmod(int a) {
int x, y, d;
euclid(a, MOD, d, x, y);
x = (x + MOD) % MOD;
return x;
}
int main() {
fin = fopen("dirichlet.in", "r");
fout = fopen("dirichlet.out", "w");
fscanf(fin, "%d", &N);
for(int k = 2; k <= N; k++) {
a = (1LL * a * (N + k)) % MOD;
b = (1LL * b * k) % MOD;
}
int ans = (1LL * a * invmod(b)) % MOD;
fprintf(fout, "%d", ans);
return 0;
}