Cod sursa(job #590143)

Utilizator cr1st18Cristi cr1st18 Data 15 mai 2011 17:35:24
Problema Jocul Flip Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");

int a[16][16],sumcol[16],smax = -32000,sol[16];
int n,m;

void rez()
{
	int i,j,s = 0;
	for(i=1;i<=m;i++)
		sumcol[i] = 0;
	
	for(j=1;j<=m;j++)
	{
		for(i=1;i<=n;i++)
			if(sol[i])
				sumcol[j]-=a[i][j];
			else
				sumcol[j]+=a[i][j];
	}
	
	for(i=1;i<=m;i++)
		if(sumcol[i] < 0)
		{
			for(j=1;j<=n;j++)
				if(sol[j])
					s+=a[j][i];
				else
				   s-=a[j][i];
		}
		else
			s+=sumcol[i];
		
	if(s > smax)
		smax = s;
}
			
void Gen(int k)
{
	int i;
	
	for(i=0;i<=1;i++)
	{
		sol[k] = i;
		if(k == n)
			rez();
		else
			Gen(k+1);
	}
}
		

int main()
{	
	fin>>n>>m;
	
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			fin>>a[i][j];
	
	Gen(1);	
	fout<<smax<<"\n";

return 0;
}