Cod sursa(job #363263)

Utilizator crusRus Cristian crus Data 12 noiembrie 2009 15:34:53
Problema Jocul Flip Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<stdio.h>
int var[20],n,m;
long v[17][17],smax;
long abs(long n)
{
	if(n<0) return -n;
	return n;
}
void sum()
{
	int i,j;
	long suma=0,sc;
	for(i=1;i<=n;i++)
		if(var[i])
			for(j=1;j<=m;j++)
				v[i][j]=-v[i][j];
	
	for(j=1;j<=m;j++)
		{
			sc=0;
			for(i=1;i<=n;i++)
				sc+=v[i][j];
			suma+=abs(sc);
		}
	if(suma>smax) smax=suma;		
}
void flip(int k)
{
	int i;
	for(i=0;i<=1;i++)
	{
		var[k]=i;
		if(k!=n) flip(k+1);
		else sum();
	}
}
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( "%ld", &v[i][j] );
	flip(1);
	printf( "%ld",smax );
}