Cod sursa(job #1212475)

Utilizator radudurlesteanuDurlesteanu Radu Stefan radudurlesteanu Data 24 iulie 2014 20:36:20
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <cstdio>
using namespace std;
long a[16][16],n,i,j,sp,sm,S,m;
bool bun;
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%ld%ld",&n,&m);
for (i=0;i<n;i++)
for (j=0;j<m;j++)
   {
   scanf("%ld",&a[i][j]);
   S+=a[i][j];
   }
bun=true;
while (bun)
   {
   bun=false;
   for (i=0;i<n;i++)
      {
      for (j=0;j<m;j++)
      if (a[i][j]<0) sm-=a[i][j];
                else sp+=a[i][j];
      if (sm>sp) {
                 S=S-2*sp+2*sm;
                 bun=true;
                 for (j=0;j<m;j++) a[i][j]*=-1;
                 }
      sm=0;sp=0;
      }
   for (j=0;j<m;j++)
      {
      for (i=0;i<n;i++)
      if (a[i][j]<0) sm-=a[i][j];
                else sp+=a[i][j];
      if (sm>sp) {
                 S=S-2*sp+2*sm;
                 bun=true;
                 for (i=0;i<n;i++) a[i][j]*=-1;
                 }
       sm=0;sp=0;
      }
   }
printf("%ld",S);
}