Cod sursa(job #560543)

Utilizator krysstynelBojor Fineas Cristian krysstynel Data 18 martie 2011 16:07:02
Problema Jocul Flip Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream>
using namespace std;

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

int n,m,maxim=-2000000000,a[18][18],sol[40];

void calc()
{
	int s=0;
	int stot=0;
	
	for(int i=1; i<=n; i++)
	{
		if(sol[i])
		{
			for(int j=1; j<=m; j++)
				a[i][j]*=-1;
		}
	}
	
	for(int i=1; i<=m; i++)
	{	
		s=0;
		
		for(int j=1; j<=n; j++)
		{
			s+=a[j][i];
		}
		
		if(s<0)
			s*=-1;
		
		stot+=s;
	}
	
	maxim=max(stot,maxim);
}

void back(int pas)
{
	if(pas>n)
	{	
		calc();
		return;
	}
	
	sol[pas]=0;
	
	back(pas+1);
	
	sol[pas]=1;
	
	back(pas+1);
}

void citeste()
{
	fi>>n>>m;
	
	for(int i=1; i<=n; i++)
		for(int j=1; j<=m; j++)
		{
			fi>>a[i][j];
		}
}

int main()
{
	citeste();
	
	back(1);
	
	fo<<maxim;
	
	fi.close();
	fo.close();
	
	return 0;
}