Cod sursa(job #828022)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 2 decembrie 2012 21:35:50
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>
int n,m,a[20][20],st[35];
long max=-32000000,s;
void back(int k)
{
	int i,j;
	for(i=st[k-1]+1;i<=n+m;i++)
	{
		st[k]=i;
		if(i<=n)
			for(j=1;j<=m;j++)
			{
			s=s-2*a[i][j];
			a[i][j]=a[i][j]*-1;
			}
			else
				for(j=1;j<=n;j++)
				{
					s=s-2*a[j][i-n];
					a[j][i-n]=a[j][i-n]*-1;
				}
				if(s>max)
					max=s;
		back(k+1);
		if(i<=n)
			for(j=1;j<=m;j++)
			{
						a[i][j]=a[i][j]*-1;
			s=s+2*a[i][j];
			}
			else
				for(j=1;j<=n;j++)
				{
							a[j][i-n]=a[j][i-n]*-1;
					s=s+2*a[j][i-n];
				}
	}
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
int i,j;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
scanf("%d",&a[i][j]);
s=s+a[i][j];
}
back(1);
printf("%ld",max);
return 0;
}