Cod sursa(job #412983)

Utilizator lau08Laurentiu Capatina lau08 Data 7 martie 2010 12:21:09
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<stdio.h>
FILE *f=fopen("flip.in","r");
FILE *g=fopen("flip.out","w");
int n,m,i,j,sw;
long a[17][17],smax=-100000000,st[400];

int max(int x,int y)
{if(x>y) {sw=0;return x;}
else {sw=1; return y;}
}

void schimbare(int i,int j)
{int q;
	for(q=1;q<=n;q++)
		a[q][j]=a[q][j]*(-1);
	for(q=1;q<=m;q++)
		a[i][q]=a[i][q]*(-1);
}

long suma()
{int s=0,j,q;
for(j=1;j<=n;j++)
	for(q=1;q<=m;q++)
		s+=a[j][q];
return s;
}

void back(int k)
{int i,j;
long p;

for(i=1;i<=n;i++)
	for(j=1;j<=m;j++)
		{p=suma();
			st[k]=p;
		schimbare(i,j);
			p=suma();
			if(p>st[k])
				st[k]=p;
			else schimbare(i,j);
			if(i==n && j==m)
				{
					for(i=1;i<=k;i++)
						if(smax<st[i])smax=st[i];
					return;
				}
		
}
}

int main()
{fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++)
	for(j=1;j<=m;j++)
		fscanf(f,"%ld",&a[i][j]);
st[1]=-100000000;
back(1);

fprintf(g,"%ld\n",smax);
return 0;
}