Cod sursa(job #2663020)

Utilizator MariusMarius Stroe Marius Data 25 octombrie 2020 09:36:50
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>

int main() {
  int rows, cols, board[16][16], flippedBoard[16][16];
  std::ifstream in("flip.in");

  in >> rows >> cols;
  for (int i = 0; i < rows; i++) {
    for (int j = 0; j < cols; j++) {
      in >> board[i][j];
    }
  }
  in.close();

  int bestSum;
  for (int config = 0; config < 1 << 16; ++config) {
    for (int i = 0; i < rows; ++i) {
      for (int j = 0; j < cols; ++j) {
        flippedBoard[i][j] = config >> i & 1 ? -board[i][j] : board[i][j];
      }
    }
    int totalSum = 0;
    for (int j = 0; j < cols; ++j) {
      int colSum = 0;
      for (int i = 0; i < rows; ++i) {
        colSum += flippedBoard[i][j];
      }
      totalSum += abs(colSum);
    }
    bestSum = !config ? totalSum : std::max(bestSum, totalSum);
  }

  std::ofstream out("flip.out");
  out << bestSum;
  out.close();

  return 0;
}