Cod sursa(job #502466)

Utilizator gramatovici_paulGramatovici Paul gramatovici_paul Data 19 noiembrie 2010 16:57:38
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<stdio.h>
int n,m,i,j,x[20][20],smax = 0;
bool sol[17];

void afis()
{
	for(int i=1;i<=n;++i)
		if (sol[i])
			printf("%d ",i);
}

void prelucrare()
{
	int s = 0,slin;
	for(int i=1 ; i<=n ; ++i)
	{
		slin = 0;
		for(int j=1 ; j<=m ; ++j)
			if(sol[j])
				slin -= x[i][j];
			else
				slin += x[i][j];
		if(slin<0)
			slin = -slin;
		s += slin;
	}
	///afis();
	////printf("s = %d\n",s);
	if(s > smax)
		smax = s;
}

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

int main()
{
	freopen("flip.in","r",stdin);
	freopen("flip.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;++i)
		for(j=1;j<=m;++j)
			scanf("%d",&x[i][j]);
	bkt(1);
	printf("%d",smax);
	return 0;
}