Cod sursa(job #1027114)

Utilizator tudorv96Tudor Varan tudorv96 Data 12 noiembrie 2013 13:42:40
Problema Diamant Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
using namespace std;

ifstream fin ("diamant.in");
ofstream fout ("diamant.out");

const int N = 1e5;
const int nul = 6e4;
const int M = 44100;

int n, m, x, a[nul << 1], b[nul << 1];

#define a (a + nul)
#define b (b + nul)

int MOD (int x) {
	while (x >= 10000)
		x -= 10000;
	return x;
}

int main() {
	fin >> m >> n >> x;
	a[0] = 1;
	for (int i = 1; i <= m; ++i)
		for (int j = 1; j <= n; ++j) {
				for (int k = -M; k <= M; ++k) {
					b[k] = a[k];
					a[k] = 0;
				}
				for (int k = -M; k <= M; ++k)
					a[k] = MOD(b[k] + b[k - i * j] + b[k + i * j]);
			}
	fout << a[x];
}