Cod sursa(job #355367)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 10 octombrie 2009 21:09:13
Problema Diamant Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <cstdio>
#define lm 100000
#define X 10000

int v[lm], a[lm], n, m, x, l, i, j, c, k;

int main()
{
	freopen("diamant.in","r",stdin);
	freopen("diamant.out","w",stdout);
	scanf("%d %d %d",&n, &m, &x);
	v[0]=1;
	l=m*n*(m+1)*(n+1)/4;
	x+=l;
	for (i=1; i<=n; i++)
		for (j=1; j<=m; j++)
		{
			c=i*j;
			for (k=x; k>=c; k--)
			{
				v[k]+=v[k-c];
				v[k]=v[k]%X;
				a[k] = v[k-c];
			}
			for (k=x; k>=c; k--) 
			{
				v[k]+=a[k-c];
				v[k]=v[k]%X;
			}
			for (k=0; k<=x; k++) a[k]=0;	
		}
	printf("%d",v[x]);
}