Cod sursa(job #593586)

Utilizator a_h1926Heidelbacher Andrei a_h1926 Data 3 iunie 2011 17:30:19
Problema Diamant Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>

using namespace std;

const long Max=44100;
const long Max2=88200;
long N, M, V, A[Max2+5], B[Max2+5];;

void Read ()
{
	ifstream fin ("diamant.in");
	fin >> N >> M >> V;
	fin.close ();
}

void Type (long S)
{
	ofstream fout ("diamant.out");
	fout << S;
	fout.close ();
}

int main ()
{
	long i, j, k, ij;
	Read ();
	if (V<-Max)
	{
		Type (0);
		return 0;
	}
	if (V>Max)
	{
		Type (0);
		return 0;
	}
	A[44100]=1;
	for (i=1; i<=N; i++)
	{
		for (j=1; j<=M; j++)
		{
			ij=i*j;
			for (k=0; k<=Max2; k++)
			{
				B[k]=A[k];
			}
			for (k=0; k<=Max2; k++)
			{
				if (k>=ij)
				{
					A[k-ij]+=B[k];
					A[k-ij]%=10000;
				}
				if (k+ij<=Max2)
				{
					A[k+ij]+=B[k];
					A[k+ij]%=10000;
				}
			}
		}
	}
	Type (A[V+Max]);
	return 0;
}