Cod sursa(job #86880)

Utilizator eddieOlariu Eduard Iuliu eddie Data 25 septembrie 2007 20:59:13
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <stdio.h>
int n,m;
long x[17][17];
long long a[17],b[17];
long long ll;
int main()
 {
  freopen ("flip.in","r",stdin);
  freopen ("flip.out","w",stdout);
  scanf("%d %d",&n,&m);
  int i,j;
  for (i=1;i<=n;i++)
   for (j=1;j<=m;j++)
    {
     scanf("%ld ",&x[i][j]);
     a[i]+=x[i][j];
     b[j]+=x[i][j];
    }
 for (i=1;i<=n;i++)
    if (a[i]<0)
      {
       a[i]*=-1;
       ll=2*a[i];
       for (j=1;j<=m;j++)
	{
	 b[j]-=(2*x[i][j]);
	 ll-=(2*x[i][j]);
	 x[i][j]*=-1;
	}
	if (ll<0)
	 for (j=1;j<=m;j++)
	  {
	   b[j]-=(2*x[i][j]);
	   x[i][j]*=-1;
	  }
      }
 for (i=1;i<=m;i++)
    if (b[i]<0)
      {
       b[i]*=-1;
       ll=2*b[i];
       for (j=1;j<=n;j++)
	{
	 a[j]-=(2*x[j][i]);
	 ll-=(2*x[j][i]);
	 x[j][i]*=-1;
	}
       if (ll<0)
	 for (j=1;j<=n;j++)
	     a[j]-=(2*x[j][i]);
	     x[j][i]*=-1;
      }
 ll=0;
 for (i=1;i<=n;i++)
    {
     ll+=a[i];
    }
 printf("%lld",ll);
 return 0;
}