Cod sursa(job #595796)

Utilizator t2010tZaharia Teofil t2010t Data 14 iunie 2011 10:15:22
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#define nmax 16
using namespace std;

int n,m;
int maxm;
int a[nmax][nmax];
int global[nmax];
int var[2] = {1,-1};

void save();
void back(int nivel); //back pe linii
int max(); //max pe coloane

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

int i1,i2;

in>>n>>m;
for(i1=0;i1<n;i1++)
	for(i2=0;i2<m;i2++)
		in>>a[i1][i2];

for(i1=0;i1<n;i1++)
	global[i1] = 1;

maxm = max();

back(0);

out<<maxm;

in.close();
out.close();
return 0;
}

void back(int nivel)
{
int i1,maxk;
for(i1=0;i1<2;i1++)
	{
	global[nivel] = var[i1]; //1,-1
	
	if(nivel == n-1)
		{
		maxk = max();
		if (maxk > maxm)
			maxm = maxk;
		}
	else
		back(nivel+1);
	}

}

int max()
{
int i1,i2,s_col,maxk=0;

for(i2=0;i2<m;i2++)
	{
	s_col = 0;
		
	for(i1=0;i1<n;i1++)
		s_col += a[i1][i2] * global[i1];
		
	if(s_col < 0)
		s_col *= -1;
		
	maxk += s_col; 
	}
return maxk;
}