Cod sursa(job #793070)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 1 octombrie 2012 21:36:21
Problema Diamant Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<fstream.h>
#include<cmath>
#include<cstdlib>
#define mod 10000



using namespace std;


ifstream f("diamant.in");
ofstream g("diamant.out");

int n,m,i,j,x,t,M[200010][2];
int CalitateMax;

int main () {
	
	f>>n>>m>>x;
	M[0][0]=1;
	for(	i=1;	i<=n;	++i	)
		
		for	(	j=1	;	j<=m	;	++j	)
			CalitateMax+=i*j;
	
	for(	i=1;	i<=n	;	++i		)
		for(	j=1;	j<=m;	++j			){
			
			for(	t=0;	t<=CalitateMax;		++t		)	{
				
				M[t][1]=(	M[t][0]	+	M[abs(t-i*j)][0]	+	M[t+i*j][0])%mod;
				
			}
			
			for(	t=0;	t<=CalitateMax;	++t	)
				M[t][0]=M[t][1];
			
		}
	
	if(		abs(x)<CalitateMax		){
		
		g<<M[abs(x)][0];
		
	}
	else {
		
		g<<0<<"\n";
	}
	return 0;
}