Cod sursa(job #721327)

Utilizator okros_alexandruOkros Alexandru okros_alexandru Data 23 martie 2012 16:45:18
Problema Diamant Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#define NMAx 180100
#define MOD 10000
#define Mid 90000
using namespace std;

int N,M,X,Total,A[NMAx],B[NMAx];

void Solve() {
	
	int i,j,Val,k;
	
	A[Mid]=1;
	
	for(i=1;i<=N;i++)
		for(j=1;j<=M;j++) {
			
			Val=i*j;
			
			for(k=-Total;k<=Total;k++)
				B[Mid+k]=(A[Mid+k]+A[Mid+k-Val]+A[Mid+k+Val])%MOD;
			
			for(k=-Total;k<=Total;k++)
				A[Mid+k]=B[Mid+k];
			
			}
		
}
int main() {
	
	int i,j;
	ifstream in("diamant.in");
	ofstream out("diamant.out");
	in>>N>>M>>X;
	
	for(i=1;i<=N;i++)
		for(j=1;j<=M;j++)
			Total+=i*j;
	
	if(-Total<=X&&X<=Total)
		Solve();
	
	out<<A[Mid+X]<<'\n';
	
	in.close();
	out.close();
	
	return 0;
	
}