Cod sursa(job #2684619)

Utilizator Asgari_ArminArmin Asgari Asgari_Armin Data 14 decembrie 2020 12:28:37
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>

using namespace std;

ifstream fin( "flip.in" );
ofstream fout( "flip.out" );

const int NMAX = 16;
int mat[NMAX + 2][NMAX + 2];
int val[NMAX + 2][NMAX + 2];
int values[] = {-1, 1};
int v[NMAX + 2];
int n, m, maxx;

int solve(){
  int i, j, sum, scol;
  for( i = 1; i <= n; ++i )
    for( j = 1; j <= m; ++j )
      val[i][j] = values[v[i]] * mat[i][j];
  sum = 0;
  for( i = 1; i <= m; ++i ){
    scol = 0;
    for( j = 1; j <= n; ++j )
      scol += val[j][i];
    sum = sum + max(-scol, scol);
  }
  return sum;
}

void bkt( int poz ){
  if( poz == n + 1 ){
    maxx = max(solve(), maxx);
    return ;
  }
  for( int i = 0; i <= 1; ++i ){
    v[poz] = i;
    bkt(poz + 1);
  }
}

int main() {
  int i, j;
  fin >> n >> m;
  for( i = 1; i <= n; ++i )
    for( j = 1; j <= m; ++j )
      fin >> mat[i][j];
  bkt(1);
  fout << maxx;
  return 0;
}