Cod sursa(job #101589)

Utilizator bigsarpeadrian bigsarpe Data 13 noiembrie 2007 17:15:24
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
using namespace std;
int abs(int a){ return a>0 ? a:-a;}

  int A[16][16],sum[16];
  int MAX,m,n,i,j;

void back(int niv)
{ int i;
  if(niv==n)
  { int suma=0;
    for(i=0;i<m;suma+=abs(sum[i++]));
    if(suma>MAX) MAX=suma;
  } else
  {
  //pune cu plus valoarea de pe linia A[niv][i]
    for(i=0;i<m;sum[i]+=A[niv][i++]);back(niv+1);
    for(i=0;i<m;sum[i]-=2*A[niv][i++]);back(niv+1);
    for(i=0;i<m;sum[i]+=A[niv][i++]);
  }
}
int main()
{
  ifstream fin("flip.in");
  ofstream fout("flip.out");
  fin>>n>>m;
  for(i=0;i<n;i++) for(j=0;j<m;j++) fin>>A[i][j];
  MAX=-256*1000*1000;
  for(i=0;i<m;sum[i++]=0);
  back(0);
  fout<<MAX;
  fin.close();
  fout.close();
  return 0;
}