Cod sursa(job #759593)

Utilizator andrei.stoicaStoica Andrei andrei.stoica Data 18 iunie 2012 18:37:57
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<cstdio>
#define lim 16

using namespace std;

int a[lim][lim],N,M;
int flips[lim];
int aux,s,smax=0;

void flip ()
{
  s=0;
  int i,j;
  for (i=0 ; i<N ; ++i)
  {
    aux=0;
    for (j=0 ; j<M ; ++j)
    {
      aux+=a[i][j]*flips[j];
    }
    if (aux<0)
      s+=-1*aux;
    else
      s+=aux;
  }
  if (smax<s)
    smax=s;
}

void bkt (int p)
{
  if (p==M)
  {
    flip();
    return;
  }
  flips[p]=1;
  bkt(p+1);
  flips[p]=-1;
  bkt(p+1);
}

int main () 
{
  freopen ("flip.in","r",stdin);
  freopen ("flip.out","w",stdout);
  scanf ("%d",&N);
  scanf ("%d",&M);
  for (int i=0 ; i<N ; ++i)
  {
    for (int j=0 ; j<M ; ++j)
    {
      scanf ("%d",&a[i][j]);
    }
  }
  bkt(0);
  printf ("%d",smax);
  return 0;
}