Cod sursa(job #3195097)

Utilizator DariusHHanganu Darius DariusH Data 20 ianuarie 2024 09:36:18
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>

using namespace std;

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

#define N_MAX 16
int v[N_MAX][N_MAX], res[N_MAX][N_MAX];

int lins[N_MAX];
int n, m, maxval;

void bkt(int pos) {
  int i, j, k, sum, sumcol;
  if(pos == m) {
    sum = 0;
    for(i = 0; i < n; ++i) {
      sumcol = 0;
      for(j = 0; j < m; ++j) {
        if(lins[j]) {
          sumcol -= v[i][j];
        }else{
          sumcol += v[i][j];
        }
      }

      if(sumcol < 0) {
        sumcol *= (-1);
      }

      sum += sumcol;
    }
    maxval = max(sum, maxval);
  }else{
    lins[pos] = 1;
    bkt(pos + 1);
    lins[pos] = 0;
    bkt(pos + 1);
  }
}

int main()
{
  int i, j;
  fin >> n >> m;
  for(i = 0; i < n; ++i) {
    for(j = 0; j < m; ++j) {
      fin >> v[i][j];
    }
  }

  maxval = -INT_MAX;
  bkt(0);

  fout << maxval << '\n';

  return 0;
}