Cod sursa(job #2040230)

Utilizator YusyBossFares Yusuf YusyBoss Data 15 octombrie 2017 15:23:01
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <bits/stdc++.h>

using namespace std;

int mat[20][20], n, m, t[20], v[20][20], sol;
void solve () {
  int sum = 0, i, j, s;
  for (i = 1; i <= n; i++) {
    if (t[i] == 0)
      for (j = 1; j <= m; j++)
        v[i][j] = mat[i][j];
    else
      for (j = 1; j <= m; j++)
        v[i][j] = -mat[i][j];
  }
  for (i = 1; i <= m; i++) {
    s = 0;
    for (j = 1l; j <= n; j++)
      s += v[j][i];
  if (s > 0)
    sum += s;
  else
    sum -= s;
  }
  sol = max(sol, sum);
}
void backtr(int p) {
  if (p == n + 1) {
    solve();
    return;
  }
  t[p] = 0;
  backtr(p + 1);
  t[p] = 1;
  backtr(p + 1);
}

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

  cin >> n >> m;
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= m; j++)
      cin >> mat[i][j];
  }
  backtr(1);
  cout << sol;
  return 0;
}