Cod sursa(job #2274116)

Utilizator ApostolIlieDanielApostol Daniel ApostolIlieDaniel Data 1 noiembrie 2018 13:22:50
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <bits/stdc++.h>

using namespace std;

FILE *fin = fopen ("flip.in", "r"), *fout = fopen ("flip.out", "w");

#define ll long long

const int MAXN = 16;

int l[MAXN + 1], a[MAXN + 1][MAXN + 1];

ll sol;

int n, m;

void solve (int mask) {
  ll s, s1, s2;
  int i, j;
  for (i = 0; i < n; i++)
    l[i + 1] = ((1 << i) & mask) ? -1 : 1;
  s = 0;
  for (j = 1; j <= m; j++) {
    s1 = s2 = 0;
    for (i = 1; i <= n; i++) {
      s1 = s1 + l[i] * a[i][j];
      s2 = s2 + (-1) * l[i] * a[i][j];
    }
    s = s + max (s1, s2);
  }
  sol = max (sol, s);
}

int main() {
  int i, j;
  fscanf (fin, "%d%d", &n, &m);
  for (i = 1; i <= n; i++)
    for (j = 1; j <= m; j++)
      fscanf (fin, "%d", &a[i][j]);
  sol = 0;
  for (i = 0; i < (1 << n); i++)
    solve (i);
  fprintf (fout, "%lld", sol);
  return 0;
}