Cod sursa(job #812750)

Utilizator Detrol2kGuianu Leon Detrol2k Data 14 noiembrie 2012 13:20:02
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;

#define MOD 10000

int main()
{
	ifstream f("diamant.in");
	ofstream g("diamant.out");
	
	int n, m, x, i, j, k, sum=0, aux, a[100000], b[100000], mid = 50000;
	
	//Read
	f>>n>>m>>x;
	
	//Compute
	for(i=1; i<=n; i++)
		for(j=1; j<=m; j++)
			sum += i*j;
			
	if(x > sum)
	{
		g<<0;
		return 0;
	}
	
	a[mid] = 1;
	for(i=1; i<=n; i++)
		for(j=1; j<=m; j++)
		{
			aux = i*j;
			for(k=-abs(sum); k<=abs(sum); k++)
				b[mid+k] = ( a[mid+k]+a[mid+k+aux]+a[mid+k-aux] ) % MOD;
			for(k=-abs(sum); k<=abs(sum); k++)
				a[mid+k] = b[mid+k];
		}
	
	//Print
	g<<a[mid+x];
	//cout<<a[mid+x];		
}