Cod sursa(job #317321)

Utilizator sseneca16vaida cosmin sseneca16 Data 23 mai 2009 09:51:05
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.27 kb
#include<stdio.h>
long a[500][17],n,m,c[500],d[500];
long r,g,b,e,f;

int sum1(int j)
{int s=0;
for(int k=1;k<=n;k++)
	  s+=a[k][j];
return s;
}


int sum2(int i)
{int s=0;
for(int k=1;k<=m;k++)
	  s+=a[i][k];
return s;
}



int sum3()
{int s=0;
for(int k=1;k<=n;k++)
	  s+=c[k];
return s;
}



int sum4()
{int s=0;
for(int k=1;k<=m;k++)
	  s+=d[k];
return s;
}

void schimbare1(int j)
{for(int k=1;k<=n;k++)
	  c[k]=a[k][j]*-1;
}


void schimbare2(int i)
{for(int k=1;k<=m;k++)
	  d[k]=a[i][k]*-1;
}

void schimbare3(int j)
{for(int k=1;k<=n;k++)
	  a[k][j]=c[k];
}


void schimbare4(int i)
{for(int k=1;k<=m;k++)
	  a[i][k]=d[k];
}



int summax()
{int s=0;
for(int i=1;i<=n;i++)
	for(int k=1;k<=m;k++)
		s+=a[i][k];
return s;
}



int main()
{freopen("flip.in","r",stdin);
freopen ("flip.out","w",stdout);
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
	for(int j=1;j<=m;j++)
		scanf("%d",&a[i][j]);


for(i=1;i<=n;i++)
	for(int j=1;j<=m;j++)
		if(a[i][j])
		     {
		     g=sum1(j);
		      schimbare1(j);
		      b=sum3();
		      e=sum2(i);
		      schimbare2(i);
		      f=sum4();
		      if(b>g)
			schimbare3(j);

			if(f>e)
				schimbare4(i);

		      }
r=summax();
printf("%d",r);
return 0;
}