Cod sursa(job #427418)

Utilizator veliki.velicuVelicu Stefan veliki.velicu Data 27 martie 2010 20:57:56
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream>
using namespace std;

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

int table[17][17], sc[17], n, m, s=0, aux, rez;
bool sol[17];

int inline sum()
{
	int aux=0, x, i, j;
	for(i=0; i<=m; i++)
		if(sol[i])
			break;
	if(i == m+1)
		return (rez-1); 
	for(j=1; j<=n; j++)
	{
		x = sc[j]-2*table[j][i];
		aux += x>0?x:-x;
	}		
	return aux;
}

void back(int p)
{
	if (p==m+1)
	{
		rez = max(rez, sum());
		return;
	}
	sol[p] = false;
	back(p+1);
	sol[p] = true;
	back(p+1);
}

int main()
{
	in>>n>>m;
	for(int i=1; i<=n; i++)
		for(int j=1; j<=m; j++)
		{
			in>>table[i][j];
			sc[i]+=table[i][j];
		}
	back(1);
	out<<rez;
	return 0;
}