Cod sursa(job #1490074)

Utilizator al.mocanuAlexandru Mocanu al.mocanu Data 22 septembrie 2015 18:28:38
Problema Diamant Scor 20
Compilator c Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
#define MAX 805
#define X 44105
#define mod 10000

int n, m, x, u[2 * X], v[2 * X], i, j, k;

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