Pagini recente » Borderou de evaluare (job #3325297) | Cod sursa (job #3343378) | Cod sursa (job #3343524) | Cod sursa (job #3344618) | Cod sursa (job #3315748)
#include <bits/stdc++.h>
#define MOD 2000003
using namespace std;
ifstream fin("sandokan.in");
ofstream fout("sandokan.out");
long long i,n,k,f[5010],fi[5010],p;
long long rid(long long x,int put)
{
long long ras=1;
while(put)
{
if(put%2==1)
ras=ras*x%MOD;
x=x*x%MOD;
put/=2;
}
return ras;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
fin>>n>>k;
p=(n-1)%(k-1)+1;
f[0]=f[1]=1;
for(i=2; i<=n; i++)
f[i]=f[i-1]*i%MOD;
fi[n]=rid(f[n],MOD-2);
for(i=n-1; i>=0; i--)
fi[i]=fi[i+1]*(i+1)%MOD;
fout<<(f[n-1]*fi[p-1]%MOD)*fi[n-p]%MOD;
return 0;
}