Pagini recente » Cod sursa (job #2917808) | Cod sursa (job #674634) | Cod sursa (job #1827114) | Cod sursa (job #1760078) | Cod sursa (job #2098120)
#include <cstdio>
#include <iostream>
#define MOD 2000003
using namespace std;
long long putere (long long x,int p){
long long r=1;
while (p){
if (p%2)
r=(r*x)%MOD;
x=(x*x)%MOD;
p/=2;
}
return r;
}
int main()
{
FILE *fin=fopen ("sandokan.in","r");
FILE *fout=fopen ("sandokan.out","w");
int n,k,i,rmn;
long long sol,fact;
fscanf (fin,"%d%d",&n,&k);
rmn= n % (k-1);
if (!rmn)
rmn=k-1;
// combinari de n-1 luate cate rmn-1
sol=1;
for (i=1;i<=n-1;i++)
sol=(sol*i)%MOD;
fact=1;
for (i=1;i<=rmn-1;i++)
fact=(fact*i)%MOD;
sol=(sol*putere (fact, MOD-2))%MOD;
fact=1;
for (i=1;i<=n-1-rmn+1;i++)
fact=(fact*i)%MOD;
sol=(sol*putere (fact, MOD-2))%MOD;
fprintf (fout,"%lld",sol);
return 0;
}