Pagini recente » Cod sursa (job #178162) | Cod sursa (job #1898913) | Cod sursa (job #65485) | Cod sursa (job #58006) | Cod sursa (job #799818)
Cod sursa(job #799818)
#include<stdio.h>
FILE*f=fopen("diamant.in","r");
FILE*g=fopen("diamant.out","w");
int n,m,x,k,v[401],nr,w1[100000],max;
int w[100000];
int main()
{
fscanf(f,"%d%d%d",&n,&m,&x);
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
{
v[++nr]=i*j;
k+=v[nr];
}
if(x<0)
x=-x;
if(x>k)
fprintf(g,"0");
else
{
w[0]=1;
max=0;
for(int i=1;i<=nr;++i)
{
for(int j=max;j>=0;--j)
w1[j+v[i]]+=w[j];
for(int j=1;j<=max;++j)
if(j-v[i]>=0)
w1[j-v[i]]+=w[j];
else
w1[-j+v[i]]+=w[j];
max+=v[i];
for(int j=0;j<=max;++j)
{
w[j]+=w1[j];
w1[j]=0;
}
}
fprintf(g,"%d",w[x]);
}
fclose(f);
fclose(g);
return 0;
}