Cod sursa(job #593583)

Utilizator a_h1926Heidelbacher Andrei a_h1926 Data 3 iunie 2011 17:27:06
Problema Diamant Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>

using namespace std;

int N, M, V, A[2*44100+5], B[2*44100+5];

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

void Type ()
{
	ofstream fout ("diamant.out");
	fout << A[V+44100];
	fout.close ();
}

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