Cod sursa(job #465700)

Utilizator mottyMatei-Dan Epure motty Data 25 iunie 2010 12:12:28
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<stdio.h>

const int N=17;

int n,m,best=-256000001,v[N][N],op[N];

void Read() {
	scanf("%d%d",&n,&m);
	for( int i=1; i<=n; ++i)
		for( int j=1; j<=m; ++j)
			scanf("%d",&v[i][j]);
}

inline int mod(int x) {
	return (x<0 ? -x:x);
}

void Conclude() {
	for( int i=1; i<=m; ++i)
		v[0][i]=0;
	for( int i=1; i<=n; ++i)
		for( int j=1; j<=m; ++j)
			v[0][j]+=v[i][j]*op[i];
	
	int bect=0;
	
	for( int i=1; i<=m; ++i)
		bect+=mod(v[0][i]);
	if(best<bect)
		best=bect;
}

void Back(int k) {
	if(k==n+1)
	{
		Conclude();
		return;
	}
	op[k]=1;
	Back(k+1);
	op[k]=-1;
	Back(k+1);
}

int main()
{
	freopen("flip.in","r",stdin);
	freopen("flip.out","w",stdout);
	
	Read();
	
	Back(1);
	
	printf("%d\n",best);
	
	return 0;
}