Cod sursa(job #1113893)

Utilizator danny794Dan Danaila danny794 Data 21 februarie 2014 00:21:17
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <cstdio>

typedef long long ll;

using namespace std;

const int NMAX = 20;

int N, M;
ll S = 0;
int matrix[NMAX][NMAX];

void solve() {
  ll x = 0, maxM = 1 << M, s = 0, l;
  while( x < maxM) {
    for(int i = 1; i <= N; i++) {
      l = 0;
      for(int j = 1; j <= M; j++)
        l += matrix[i][j] * ( (x & (1 << j)) ? -1 : 1);
      if (l < 0)
        l = -l;
      s += l;
    }
    if ( s > S )
      S = s;
    s = 0;
    x++;
  }
}

int main() {
  freopen("flip.in", "r", stdin);
  freopen("flip.out", "w", stdout);
  scanf("%d%d", &N, &M);

  for(int i = 1; i <= N; i++)
    for(int j = 1; j <= M; j++) {
      scanf("%d", &matrix[i][j]);
      S += matrix[i][j];
    }
  solve();
  printf("%lld\n", S);
  return 0;
}