Mai intai trebuie sa te autentifici.
Cod sursa(job #163645)
Utilizator | Data | 22 martie 2008 14:51:19 | |
---|---|---|---|
Problema | Sandokan | Scor | 35 |
Compilator | cpp | Status | done |
Runda | preONI 2008, Runda Finala, Clasa a 9-a | Marime | 0.58 kb |
#include<stdio.h>
long n,k,r,t,p,p2,i;
int main()
{
freopen("sandokan.in","r",stdin);
freopen("sandokan.out","w",stdout);
scanf("%ld %ld",&n,&k);
if(n%k==k-1) r=n/k+1;
else r=n/k;
t=n+r;
r=t%k;
if(t%k==0) r=1;
if(r==1)
printf("%ld",r);
if(r==2) printf("%ld",n-1);
if(r==3) printf("%ld",((n-1)*(n-2))/2%2000003);
if(r>3)
{
n=n-1;
p=1;
for(i=n-r+1;i<=n;++i)
p=((p%2000003)*(i%2000003))%2000003;
p2=1;
for(i=1;i<=k;++i)
p2=(p2*(i%2000003))%2000003;
while(p%p2)
p+=p2;
printf("%d",(p/p2)%2000003);
}
return 0;
}