Pagini recente » Cod sursa (job #1190476) | Cod sursa (job #1660735) | Cod sursa (job #1150626) | Cod sursa (job #2653576) | Cod sursa (job #46932)
Cod sursa(job #46932)
#include<stdio.h>
#include<string.h>
#define max(a,b) a<b?b:a
#define mod 10000
int n,m,a[50000],b[50000],i,j,c,k,y,x,xmax;
int main()
{freopen("diamant.in","r",stdin);
freopen("diamant.out","w",stdout);
scanf("%d %d %d",&n,&m,&c);
c=c>0?c:-c;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
k=k+i*j;
if(k<c) {printf("0");fclose(stdout);return 0;}
if(k==c){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[c]);
fclose(stdout);
return 0;}