Cod sursa(job #1144980)

Utilizator raulstoinStoin Raul raulstoin Data 17 martie 2014 19:41:58
Problema Diamant Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<fstream>
#include<cstring>

#define NMAX 25
#define SMAX 44105
#define MOD 10000

using namespace std;

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

int n,m,sum,DP[2][SMAX],l;

int Abs(int x)
{
	return (x<0)?-x:x;
}

int main()
{
	fin>>n>>m>>sum;
	DP[0][0]=1;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++,l=1-l)
			for(int k=0;k<SMAX;k++)
				DP[1-l][k]=(DP[l][k]+DP[l][k+i*j]+DP[l][Abs(k-i*j)])%MOD;
	if( sum < (-(m*(m+1)*n*(n+1))/4) || sum > ((m*(m+1)*n*(n+1))/4) )
		fout<<"0";
	else
		fout<<DP[l][Abs(sum)];
	return 0;
}