Cod sursa(job #169367)
Utilizator | Andrei-Bogdan Antonescu andrei-alpha | Data | 1 aprilie 2008 17:31:31 |
---|---|---|---|
Problema | Sandokan | Scor | 15 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <stdio.h>
#define R 2000003
int b[5000],a[5000];
int rez,n,k,i,j,t,x;
int main()
{
freopen("sandokan.in", "r",stdin);
freopen("sandokan.out", "w",stdout);
scanf("%d%d",&n,&k);
a[0]=1; x=n;
for (i=1;i<n;i++)
for (j=1;j<=k;j++)
b[j]=a[j-1]+a[j];
for (j=1;j<=k;j++)
a[j]=b[j]%R;
while(x>=k) x=x%k+x/k;
k=1;
for(i=n;i>n-x;i--)
{ k*=i; k%=R; }
rez=a[x-1];
printf("%d\n", rez);
return 0;
}