Cod sursa(job #51832)

Utilizator peanutzAndrei Homorodean peanutz Data 16 aprilie 2007 22:14:52
Problema Diamant Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>
#include <memory.h>
#define SHIFT 50100
#define NMAX (SHIFT*2 + 1000)
long a[NMAX], b[NMAX];

const int MIJLOC = SHIFT/2;

int n, m;
long x;

void dinamic()
{
	long i, j, k;

	a[MIJLOC] = 1;

	for(i = 1; i <= n; ++i)
	{
		for(j = 1; j <= m; ++j)
		{
			memcpy(b, a, sizeof(a));
			for(k = 0; k <= SHIFT*2; ++k)
			{
				a[k] = b[k - i*j] + b[k] + b[k + i*j];

				a[k] %= 10000;
			}
			//memcpy(a, b, sizeof(b));
		}
	}
}

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

	scanf("%d %d %ld\n", &n, &m, &x);

	dinamic();

	printf("%ld\n", a[x + MIJLOC]);

	fclose(stdin);
	fclose(stdout);

	return 0;
}