Pagini recente » Cod sursa (job #1570213) | Cod sursa (job #1363731) | Cod sursa (job #22166) | Cod sursa (job #2519807) | Cod sursa (job #2106085)
#include <cstdio>
const int MAXN = 5e3;
const int MOD = 2e6 + 3;
int fact[MAXN];
inline int pow(int a, int n) {
int p = 1;
while (n > 0) {
if (n & 1) {
p = (1LL * p * a) % MOD;
}
a = (1LL * a * a) % MOD;
n >>= 1;
}
return p;
}
inline int comb(int n, int k) {
return (1LL * fact[n] * (pow((1LL * fact[k] * fact[n - k]) % MOD, MOD - 2) % MOD)) % MOD;
}
int main() {
int n, k;
FILE *f = fopen("sandokan.in", "r");
fscanf(f, "%d%d", &n, &k);
fclose(f);
fact[0] = fact[1] = 1;
for (int i = 2; i <= n; ++i) {
fact[i] = i * fact[i - 1];
}
k = n % (k - 1);
f = fopen("sandokan.out", "w");
fprintf(f, "%d\n", comb(n - 1, k - 1));
fclose(f);
return 0;
}