Cod sursa(job #458391)

Utilizator mathboyDragos-Alin Rotaru mathboy Data 24 mai 2010 19:59:17
Problema Diamant Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <cstdio>
#include <cstring>

#define off 44100
#define mod 10000

using namespace std;

int A[2 * off + 10], B[2 * off + 10], qq, i, j, n, m, k;
int main () {
	freopen ("diamant.in", "r", stdin);
	freopen ("diamant.out", "w", stdout);
	scanf ("%d%d%d\n", &n, &m, &k);
	if (k > off || k < -off) {
		printf ("0\n"); return 0;
	}
	A[off] = 1;
	for (i = 1; i <= n; i++)
		for (j = 1; j <= m; j++) {
			for (qq = -off; qq <= off; qq++)
				B[qq + off] = (A[qq + off] + A[qq + i * j + off] + A[qq - i * j + off]) % mod;
		memcpy (A, B, sizeof (A));
		}
	printf ("%d\n", A[off + k]);
}