Pagini recente » Cod sursa (job #161061) | Cod sursa (job #1421287) | Cod sursa (job #1222235) | Cod sursa (job #1430427) | Cod sursa (job #46924)
Cod sursa(job #46924)
#include<stdio.h>
#include<string.h>
#define max(a,b) a<b?b:a
#define mod 10000
int n,m,a[10000],b[10000],i,j,X,k,y,x,xmax;
int main()
{freopen("diamant.in","r",stdin);
freopen("diamant.out","w",stdout);
scanf("%d %d %d",&n,&m,&X);
X=X>0?X:-X;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
k=k+i*j;
if(k<X) {printf("0");fclose(stdout);return 0;}
if(k==X){printf("1");fclose(stdout);return 0;}
a[0]=1;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{y=i*j;x=xmax;
memcpy(b,a,sizeof(a));
for(k=xmax;k>=0;k--)
if(b[k]){ a[k+y]=(a[k+y]+b[k])%mod;x=max(x,k+y);}
for(k=1;k<=y;k++) if(b[k]) a[y-k]=(a[y-k]+b[k])%mod;
for(k=y;k<=xmax;k++) if(b[k]) a[k-y]=(a[k-y]+b[k])%mod;
xmax=x;}
printf("%d",a[X]);
fclose(stdout);
return 0;}