Pagini recente » Cod sursa (job #1610951) | Cod sursa (job #235670) | Cod sursa (job #1863192) | Cod sursa (job #1540849) | Cod sursa (job #2135069)
#include <iostream>
#include <fstream>
#define MOD 2000003
#define dimm 5005
#define ll long long
std::ifstream f("sandokan.in");
std::ofstream g("sandokan.out");
ll fact[dimm];
void precalc() {
fact[0] = 1;
for (int i=1; i<dimm; i++)
fact[i] = fact[i-1]*i % MOD;
}
ll fast_exp(ll baza, ll exp) {
if(exp==0) return 1;
if(exp%2) {
ll v = fast_exp(baza, exp/2) % MOD;
return baza * v % MOD * v % MOD;
}
ll v = fast_exp(baza, exp/2) % MOD;
return v * v % MOD;
}
ll invers_mod(ll x) {
ll phi = MOD-1;
return fast_exp(x, phi-1) % MOD;
}
ll comb(ll N, ll K) {
return fact[N] * invers_mod(fact[K] * fact[N-K] % MOD) % MOD;
}
int main()
{
precalc();
ll N, K; f >> N >> K;
int r = N%(K-1);
if (r==0) r = K-1;
g << comb(N-1, r-1);
return 0;
}