Cod sursa(job #322871)

Utilizator Anonymous1010Chilivercu Cristian Anonymous1010 Data 10 iunie 2009 09:48:33
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>

int a[16][16],n,m,s[16];
long smax,sum;

void bk(int);

int main()
{
	int i,j;

	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",&a[i][j]);

	smax=-2000000000;

	bk(1);

	printf("%d",smax);
}

void bk(int k)
{
	int j,aux;

	if(k<=n)
		for(aux=0;aux<=1;aux++)
		{
			if(aux)
				for(j=1;j<=m;j++)
					s[j]-=a[k][j];
			else
				for(j=1;j<=m;j++)
					s[j]+=a[k][j];

			bk(k+1);

			if(aux)
				for(j=1;j<=m;j++)
					s[j]+=a[k][j];
			else
				for(j=1;j<=m;j++)
					s[j]-=a[k][j];
		}
	else
	{
		sum=0;

		for(j=1;j<=m;j++)
		{
			if(s[j]>=0)
				sum+=s[j];
			else
				sum-=s[j];
		}

		if(sum>smax)
			smax=sum;
	}
}