Pagini recente » Cod sursa (job #1248742) | Cod sursa (job #1639804) | Cod sursa (job #2973684) | Cod sursa (job #2749968) | Cod sursa (job #2238178)
#include <fstream>
using namespace std;
ifstream cin ("sandokan.in");
ofstream cout ("sandokan.out");
const int MOD = 2000003;
int n, k;
int lgput(int a, int b) {
int sol = 1, n = a;
for(int i = 0; (1 << i) <= b; i++) {
if(b & (1 << i))
sol = 1LL * sol * n % MOD;
n = 1LL * n * n % MOD;
}
return n;
}
int inv(int n) {
return lgput(n, MOD - 2);
}
int comb(int n, int k) {
int sol = 1, fact = 1;
for(int i = n - k + 1; i <= n; i++)
sol = 1LL * sol * i % MOD;
for(int i = 2; i <= k; i++)
fact = 1LL * fact * i % MOD;
return 1LL * sol * inv(fact) % MOD;
}
int main() {
cin >> n >> k;
k = (n % (k - 1) == 0 ? k - 1 : n % (k - 1));
cout << comb(n, k - 1);
return 0;
}