Cod sursa(job #330343)
Utilizator | Data | 9 iulie 2009 17:12:06 | |
---|---|---|---|
Problema | Sandokan | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.23 kb |
#include<stdio.h>
int a[5003],b[5003],i,j,c[5003],n,n1,k,rez,k1;
int main()
{
freopen("sandokan.in","r",stdin);
freopen("sandokan.out","w",stdout);
scanf("%d %d",&n,&k);
n1=n;
while(n>=k) { c[++j]=n;
n=n-k+1;
}
k1=j;
a[0]=1;
rez=1;
for(i=1;i<=n1;i++) { for(j=1;j<=i;j++) { b[j]=(a[j-1]+a[j])%2000003;
if(i==c[k1]&&j==k&&k1) { rez*=b[j];
rez=rez%2000003;
k1--;
}
}
for(j=1;j<=i;j++) { a[j]=b[j];
b[j]=0;
}
}
printf("%d\n",rez);
fclose(stdin);
fclose(stdout);
return 0;
}