Cod sursa(job #355833)

Utilizator dorelStoica Razvan-Andrei dorel Data 12 octombrie 2009 12:24:08
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
#define H 16
int v[H][H],N,M,flips[H];
long s,smax=0,b;
void flip ()
{
	s=0;
	int i,j;
	for (i=1 ; i<=N ; ++i)
	{
		b=0;
		for (j=1 ; j<=M ; ++j)
			b+=v[i][j]*flips[j];
		if (b<0)
			s+=-1*b;
		else
			s+=b;
	}
	if (smax<s)
		smax=s;
}
void bkt (int p)
{
	if (p==M+1)
	{
		flip();
		return;
	}
	flips[p]=1;
	bkt(p+1);
	flips[p]=-1;
	bkt(p+1);
}
int main () {
	freopen ("flip.in","r",stdin);
	freopen ("flip.out","w",stdout);
	scanf ("%d",&N);
	scanf ("%d",&M);
	for (int i=1 ; i<=N ; ++i)
	{
		for (int j=1 ; j<=M ; ++j)
		{
			scanf ("%d",&v[i][j]);
		}
	}
	bkt(1);
	printf ("%ld",smax);
	return 0;
}