Pagini recente » Cod sursa (job #502753) | Cod sursa (job #1991479) | Cod sursa (job #1566123) | Cod sursa (job #3131491) | Cod sursa (job #1994444)
#include <cstdio>
FILE *fin = fopen("sandokan.in", "r"), *fout = fopen("sandokan.out", "w");
#define MOD 2000003
inline int lgput(int a, int n) {
int r = 1;
while (n > 0) {
if (n % 2)
r = 1LL * r * a % MOD;
n /= 2;
a = 1LL * a * a % MOD;
}
return r;
}
int main() {
int n, k;
fscanf(fin, "%d%d", &n, &k);
n--;
k = n % (k - 1);
int ans = 1;
for (int i = 2; i <= n; i++)
ans = 1LL * ans * i % MOD;
int c = lgput(ans, MOD - 2);
for (int i = n; i >= 0; i--) {
if (i == k) ans = 1LL * ans * c % MOD;
if (i == n - k) ans = 1LL * ans * c % MOD;
c = 1LL * c * i % MOD;
}
fprintf(fout, "%d\n", ans);
fclose(fin);
fclose(fout);
return 0;
}