Cod sursa(job #3304372)

Utilizator HribHrib Sloth Hrib Data 23 iulie 2025 06:08:18
Problema Jocul Flip Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <bits/stdc++.h>
using namespace std;
typedef long long i8;

int main() {
  ifstream cin("flip.in");
  ofstream cout("flip.out");

  ios ::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);

  i8 n, m;
  cin >> n >> m;

  vector<vector<i8>> v(n, vector<i8>(m));

  for (auto &e : v) {
    for (auto &e1 : e) {
      cin >> e1;
    }
  }
  i8 res = 0;
  i8 sum = 0;
  for (i8 i = 0; i < (1 << n); i++) {
    sum = 0;

    for (i8 k = 0; k < n; k++) {
      for (i8 j = 0; j < m; j++) {
        if ((i & (1 << k)) > 0) {
          sum += v[k][j] * -1;
        } else {
          sum += v[k][j];
        }
      }
    }

    for (i8 j = 0; j < m; j++) {
      i8 scd = 0;
      i8 add = 0;

      for (i8 k = 0; k < n; k++) {
        if ((i & (1 << k)) > 0) {
          v[k][j] *= -1;
        }
        if (v[k][j] <= 0) {
          add += 2 * abs(v[k][j]);
        } else {
          scd += 2 * v[k][j];
        }
        if ((i & (1 << k)) > 0) {
          v[k][j] *= -1;
        }
      }
      if (sum + add - scd > sum) {
        sum = sum + add - scd;
      }
    }
    res = max(res, sum);
  }

  cout << res << "\n";
  return 0;
}