Cod sursa(job #346677)

Utilizator mihai_r2005Richard Mihai Andrei mihai_r2005 Data 9 septembrie 2009 00:23:36
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream.h>
#include <iostream.h>

int x, y;
int a[16][16];
int max;

int i, j;
int l[16], c[16];

void recc(int);
void recl(int);
int suma();


int main()
{
	ifstream in("flip.in");
	ofstream out("flip.out");

	in >> x;
	in >> y;
	for (i = 0; i < x; i++)
		for (j = 0; j < y; j++)
			in >> a[i][j];
	for (i = 0; i < 16; i++){
		l[i] = 1;
		c[i] = 1;
	}
	max = suma();
	recl(0);
	out << max;
	return 0;
}

void recl(int j)
{
	if (j < y){
		recl(j+1);
		l[j] = -1;
		recl(j+1);
		l[j] = 1;
	}
	else
		recc(0);
}

void recc(int i)
{
	int sum;
	if (i < x){
		recc(i+1);
		c[i] = -1;
		recc(i+1);
		c[i] = 1;
	}
	else{
		sum = suma();
		if (sum > max)
			max = sum;
	}
			
}

int suma()
{
	int i, j, sum=0;
	for (i = 0; i < x; i++)
		for (j = 0; j < y; j++)
			sum+=a[i][j]*l[j]*c[i];
	return sum;
}