Cod sursa(job #34380)

Utilizator DorinOltean Dorin Dorin Data 20 martie 2007 18:13:25
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
# include <fstream>

using namespace std;

# define input "diamant.in"
# define output "diamant.out"

# define max 160001

long a[max],i,j,n,m,ld,ls,k;
long long x;

int main()
{
	ifstream fin ( input );
	ofstream fout ( output ) ;

	fin >> n >> m >> x;

	for(i=1;i<=m;i++)
		ld+=n*(n+1)*i/2;

	ld*=2;
	ls = ld;
	a[ls] = 1;
	
	if(x>ld/2 || x<-ld/2)
    {
			fout << 0;
            return 0;
    }

	for(i = 1;i<=n;i++)
		for(j = 1;j<=m;j++)
		{
			for(k = ls;k<=ld;k++)
			{     
				while(a[k] >= 10000)a[k]-=10000;
				a[k-i*j]+=a[k];
				a[k-2*i*j]+=a[k];
			}
			ls = ls-2*i*j ;
		}

	fout << a[x+ld/2]%10000;

	return 0;
}