Pagini recente » Cod sursa (job #2653975) | Cod sursa (job #1955696) | Cod sursa (job #1781992) | Cod sursa (job #730370) | Cod sursa (job #130373)
Cod sursa(job #130373)
#include<stdio.h>
long int n,m,x,zero,i,j,k,v[500],vm[500],*vv,*vn,*va,s1[90000],s2[90000];
int main()
{
FILE *f,*g;f=fopen("diamant.in","r");g=fopen("diamant.out","w");
fscanf(f,"%ld%ld%ld",&n,&m,&x);
zero=44102;vv=s1;vn=s2;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{k++;v[k]=i*j;vm[k]=vm[k-1]+v[k];}
if(x>vm[k]||x<-vm[k]){fprintf(g,"0\n");fcloseall();return 0;}
vv[zero]=1;
for(i=1;i<=k;i++)
{ for(j=zero-vm[i-1];j<=zero+vm[i-1];j++)
{ if(vv[j])
{ vn[j-v[i]]+=vv[j];
if(vn[j-v[i]]>=10000)vn[j-v[i]]-=10000;
vn[j]+=vv[j];
if(vn[j]>=10000)vn[j]-=10000;
vn[j+v[i]]+=vv[j];
if(vn[j+v[i]]>=10000)vn[j+v[i]]-=10000;
vv[j]=0;
}
}
va=vv;vv=vn;vn=va;
}
fprintf(g,"%ld\n",vv[zero+x]);
fcloseall();
return 0;
}