Pagini recente » Cod sursa (job #2031414) | Cod sursa (job #1033555) | Cod sursa (job #2130115) | Cod sursa (job #3151745) | Cod sursa (job #1601703)
#include <bits/stdc++.h>
#define mod 2000003
#define maxN 5002
#define ll long long
using namespace std;
int n, k, x, f[maxN];
int invm(ll x)
{
int i, p = mod - 2, ans = 1, aux = x;
for (int i = 1; i <= p; i <<= 1)
{
if(i & p)
ans = (1LL * ans * aux) % mod;
aux = (1LL * aux * aux) % mod;
}
return ans;
}
int C(int n, int k)
{
if (k == 0)
return 1;
if (k == 1)
return n;
if (k == n)
return 1;
ll sol = f[n];
sol = (1LL * sol * invm(f[k])) % mod;
sol = (1LL * sol * invm(f[n - k])) % mod;
return (1LL * sol) % mod;
}
void read()
{
freopen("sandokan.in", "r", stdin);
scanf("%d %d", &n, &k);
f[0] = 1;
for (int i = 1; i <= n; ++ i)
f[i] = (1LL * f[i] * i) % mod;
}
void solve()
{
x = n % (k - 1);
if (x == 0)
x = k - 1;
}
void write()
{
freopen("sandokan.out", "w", stdout);
printf("%d", C(n - 1, x - 1));
}
int main()
{
read();
solve();
write();
return 0;
}