Cod sursa(job #282437)

Utilizator marcelcodreaCodrea Marcel marcelcodrea Data 17 martie 2009 17:27:13
Problema Diamant Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
#include<math.h>
int n;
int i;
int vs;
int no[100000];
int j;
int max;
int k;
int mij;
int m;
int x;

int main()
{
		freopen("diamant.in","r",stdin);
		freopen("diamant.out","w",stdout);

		scanf("%d %d %d",&n, &m, &x);
		mij = 50000;
		for(i = 1; i <= n; i++)
		 for(j = 1; j <= m; j++)
			 max += i * j;
		if (abs(x) > max)
			 {
			 printf("0\n");
			 return 0;
			 }

		no[mij] = 1;
		for(i = 1; i <= n; i++)
		 for(j = 1; j <= m; j++)
			{
					int val = i * j;
					for(k = 100000; k >=0; k--)
						if (no[k])
						 no[k+val] += no[k];
					no[mij + val] = 1;
					no[mij - val] = 1;

			}
		printf("%d", no[mij+x]);
		return 0;
}