Pagini recente » Cod sursa (job #2127016) | Cod sursa (job #3171104) | Cod sursa (job #1070255) | Cod sursa (job #974343) | Cod sursa (job #1835491)
#include<stdio.h>
#define MOD 9999991
void InvMod(long long a, long long b, long long *x, long long *y){
if(!b){
*x = 1;
*y = 0;
}else{
long long x0, y0;
InvMod(b, a % b, &x0, &y0);
*x = y0;
*y = x0 - (a / b) * y0;
}
}
long long Comb(long long n, long long k){
long long i, result = 1, j=1;
long long factorial=1, x, y;
for(i=2; i<=k+1; i++){//(additional +1) for catalan 1/n+1..
factorial = (factorial%MOD * i%MOD)%MOD;
}
for(i=0; i<k; i++){
result = (result%MOD * (n-i)%MOD)%MOD;
}
InvMod(factorial, MOD, &x, &y);
while (x <= 0) x += MOD;
return (x%MOD * result%MOD)%MOD;
}
int main() {
FILE *file1, *file2;
long long N;
file1 = fopen("dirichlet.in", "r");
file2 = fopen("dirichlet.out", "w");
fscanf(file1, "%lld", &N);
fprintf(file2, "%lld", Comb(2*N, N));
return 0;
}