Cod sursa(job #2685547)

Utilizator TghicaGhica Tudor Tghica Data 17 decembrie 2020 10:50:27
Problema Jocul Flip Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <stdio.h>

#define NMAX 16

using namespace std;

int n, smx, m, mat[NMAX][NMAX], mx;
bool cf[NMAX];

int calcSumMax() {
  int i, j, s, tot;
  tot = 0;
  for( i = 0; i < n; i++ ) {
    s = 0;
    for( j = 0; j < m; j++ ) {
      if( cf[j] )
        s += mat[i][j] * -1;
      else
        s += mat[i][j];
    }
    if( s < 0 )
      s *= -1;
    tot += s;
  }
  return tot;
}

void bkt( int poz ) {
  if( poz == n )  {
    int x = calcSumMax();
    if( x > mx )
      mx = x ;
    return;
  }
  poz++;
  cf[poz] = true;
  bkt( poz );
  cf[poz] = false;
  bkt( poz );
  return;
}

int main() {
  FILE *fin, *fout;
  fin = fopen( "flip.in", "r" );
  fout = fopen( "flip.out", "w" );
  int i, j;
  fscanf( fin, "%d%d", &n, &m );
  for( i = 0; i < n; i++ ) {
    for( j = 0; j < m; j++ ) {
      fscanf( fin, "%d", &mat[i][j] );
    }
  }
  bkt( -1 );
  fprintf( fout, "%d", mx );
  return 0;
}