Cod sursa(job #598702)

Utilizator ELHoriaHoria Cretescu ELHoria Data 26 iunie 2011 19:03:15
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>

int n , m , D[16][16] , maxs = -100000 ;
bool l[16] , c[16];

void back(int i,int j)
{
	if(i==n && j==m)
	{
	int s = 0;
	for(int i=0;i<n;++i)
		for(int j=0;j<m;++j)
			if( (l[i] && c[j])||(!l[i] && !c[j]) ) s+=D[i][j];
			else
			if(l[i] || c[j]) s+=D[i][j]*(-1);
	maxs = maxs > s ? maxs : s;
	}
	else
	{
	if(i<n) i++;
	if(j<m) j++;
	l[i] = true , c[i] = false , back(i,j);
	l[i] = false , c[i] = true , back(i,j);
	l[i] =  c[i] = false , back(i,j);
	}
}


void read()
{
	freopen("flip.in","r",stdin);
	scanf("%d %d",&n,&m);
	for(int i=0;i<n;++i)
		for(int j=0;j<m;++j)
			scanf("%d",&D[i][j]);
}

void write()
{
	freopen("flip.out","w",stdout);
	printf("%d",maxs);
}

int main()
{
	read();
	back(0,0);
	write();
	return 0;
}