Cod sursa(job #787071)

Utilizator icb_mnStf Cic icb_mn Data 12 septembrie 2012 16:07:56
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream>
#include<math.h>

using namespace std;

ifstream f("flip.in");
ofstream g("flip.out");

#define NMAX 16

int n,m,maxim = 0,x[NMAX][NMAX] = {0},v[NMAX + 1] = {0};

void citire()
{
	f>>n>>m;
	
	for(int i = 0; i < n ; ++i)
		for(int j = 0; j < m; ++j)
			f>>x[i][j];
		
}

inline void verifica()
{
	int sf = 0,si = 0;
	
	for(int i = 0; i < n; ++i)
	{
		si = 0;
		for(int j = 0; j < m; ++j)
		{
			si += x[i][j] * v[j + 1];
		}
		
		if(si < 0) sf += si * -1;//comutarea liniilor
		else
			sf += si;
	}
	
	if(sf > maxim)
		maxim = sf;
	
}

inline int back(int k)
{
	if(k > m)
		verifica();
	else
	{
		for(int i = -1; i <= 1; i += 2)
		{
			v[k] = i;
			back(k + 1);
		}
	}
}

int main()
{
	
	citire();
	
	back(1);
	
	g<<maxim<<'\n';
	
	g.close();
	
	return 0;
}