Cod sursa(job #429542)

Utilizator Mishu91Andrei Misarca Mishu91 Data 30 martie 2010 11:31:11
Problema Diamant Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <fstream>

using namespace std;

const int MOD = 10000;
const int MAX = 44100;

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

int N, M, X, A[2*MAX + 5];

int main()
{
	fin >> N >> M >> X;
	if(X < -MAX || X > MAX) 
	{
		fout << 0;
		return 0;
	}

	int aux[2*MAX + 5];
	A[MAX] = 1;
	for(int i = 1; i <= N; ++i)
		for(int j = 1; j <= M; ++j)
		{
			memcpy(aux, A, sizeof A);

			for(int k = 2*MAX; k >= 0; --k)
			{
				A[k] = aux[k-i*j] + aux[k] + aux[k+i*j];
				A[k] %= MOD;
			}
		}

	fout << A[MAX + X];
}