Pagini recente » Cod sursa (job #1548487) | Cod sursa (job #32936) | Cod sursa (job #1481153) | Cod sursa (job #1585289) | Cod sursa (job #1347216)
#include <fstream>
#define nmax 5005
#define mod 2000003
using namespace std;
ifstream f("sandokan.in");
ofstream g("sandokan.out");
int v[nmax];
int comb(int n , int k)
{
int i,a,x,j;
for (i=2;i<=n;i++)
v[i]++;
for (i=2;i<=k;i++)
v[i]--;
for (i=2;i<=n-k;i++)
v[i]--;
for (i=n;i>=2;i--)
if (v[i]!=0){
a=v[i];v[i]=0;
x=i;
j=2;
while (x-1) {
if (x%j==0) {
x/=j;
v[j]+=a;
while (x%j==0) {
x/=j;
v[j]+=a;
}
}
else
if (j*j>x) {
v[x]+=a;
x=1;
}
j++;
}
}
long long sol=1;
for (i=2;i<=n;i++)
while (v[i]) {
v[i]--;
sol*=1LL*i;
sol%=mod;
}
return sol;
}
int main()
{
int n,k,i;
f>>n>>k;
i=n;
while (i>(k-1))
i-=(k-1);
g<<comb(n-1,i-1);
return 0;
}