Cod sursa(job #616553)

Utilizator joli94Apostol Adrian Alexandru joli94 Data 12 octombrie 2011 20:33:35
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<cstdio>

const int N = 17;
int n , m , a[N][N] , max = -1;
bool sol[N];

void read()
{
	freopen ( "flip.in" , "r" , stdin );
	freopen ( "flip.out" , "w" , stdout );
	scanf("%d%d" , &m , &n );
	
	for(int i=1 ; i<=m ; ++i)
		for(int j=1 ; j<=n ; ++j)
			scanf("%d" , &a[i][j]);
}

void prelucrare()
{
	int sum = 0,s;
	for(int j=1 ; j<=n ; ++j)
	{
		s=0;
		for(int i=1 ; i<=m ; ++i)
		{
			if (sol[i]) s -= a[i][j];
			else sum += a[i][j];
		}
		if (s<0) s= -s;
		sum += s;
	}
	if (sum>max) max = sum;
}

void bkt(int p)
{
	if(p-1==m)
	{
		prelucrare();
		return;
	}
	sol[p] = false;
	bkt(p+1);
	sol[p] = true;
	bkt(p+1);
}

int main()
{
	read();
	bkt(1);
	printf("%d\n" , max);
	return 0;
}