Pagini recente » Cod sursa (job #677672) | Cod sursa (job #376748) | Cod sursa (job #3265525) | Cod sursa (job #1751439) | Cod sursa (job #3223895)
#include <fstream>
using namespace std;
#define int long long
ifstream in("sandokan.in");
ofstream out("sandokan.out");
int n, k, p;
int fact[5005];
int invfact[5005];
int MOD = 2000003;
int lgput(int x, int e)
{
int ans = 1;
while(e != 0)
{
if(e % 2 == 1)
{
ans = (ans * x) % MOD;
}
x = (x * x) % MOD;
e /= 2;
}
return ans;
}
int combinari(int k, int n)
{
return (((fact[n] * invfact[k]) % MOD) * invfact[n - k]) % MOD;
}
signed main()
{
in>>n>>k;
fact[0] = invfact[0] = 1;
for(int i = 1; i<=n; i++)
{
fact[i] = (fact[i - 1] * i) % MOD;
invfact[i] = lgput(fact[i], MOD - 2);
}
p = (n - 1) % (k - 1) + 1;
out<<combinari(p - 1, n - 1);
return 0;
}