Cod sursa(job #363266)

Utilizator RoswenRus Alexandru Roswen Data 12 noiembrie 2009 15:40:28
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<stdio.h>
int var[20],n,m;
long v[17][17],smax, v1[17][17];
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++)
				v1[i][j]=-v[i][j];
	
	for(j=1;j<=m;j++)
		{
			sc=0;
			for(i=1;i<=n;i++)
				sc+=v1[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( "%d", &v[i][j] );
				v1[i][j]=v[i][j];
			}
	flip(1);
	printf( "%ld",smax );
}