Cod sursa(job #652805)

Utilizator MaGdUtZaVasile Maria-Magdalena MaGdUtZa Data 26 decembrie 2011 13:43:41
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>

long a[20][20],n,m,i,j,max,s,scol,linie[20];

void sum(int k)
{
	s=0,scol=0;
	if(k==n)
	{
		for(i=1; i<=n; ++i)
			if(linie[i]==1)
				for(j=1; j<=m; ++j)
					a[i][j]*=-1;
		for(j=1; j<=m; ++j)
		{
			s=0;
			for(i=1; i<=n; ++i)
				s+=a[i][j];
			if(s<0)
				s*=-1;
			scol+=s;
		}
		if(scol>max)
			max=scol;
		for(i=1; i<=n; ++i)
			if(linie[i]==1)
				for(j=1; j<=m; ++j)
					a[i][j]*=-1;
	}
	
	else
	{
		linie[k+1]=0;	//ramane neschimata
		sum(k+1);
		linie[k+1]=1;	//schimbam semnele
		sum(k+1);
	}

}

int main()
{
	freopen("flip.in","r",stdin);
	freopen("flip.out","w",stdout);

	scanf("%ld%ld",&n,&m);
	for(i=1; i<=n; ++i)
		for(j=1; j<=m; ++j)
			scanf("%ld",&a[i][j]);
	sum(0);
	printf("%ld",max);

	return 0;
}