Cod sursa(job #593581)

Utilizator a_h1926Heidelbacher Andrei a_h1926 Data 3 iunie 2011 17:21:12
Problema Diamant Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 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;
	}
	B[44100]=1;
	B[44101]=1;
	for (i=1; i<=N; i++)
	{
		for (j=1; j<=M; j++)
		{
			for (k=0; k<=2*44100; k++)
			{
				if (k>=i*j)
				{
					A[k]+=B[k-i*j];
				}
				if (k+i*j<=2*44100)
				{
					A[k]+=B[k+i*j];
				}
				A[k]%=10000;
			}
			for (k=0; k<=2*44100; k++)
			{
				B[k]=A[k];
			}
		}
	}
	Type ();
	return 0;
}