Pagini recente » Cod sursa (job #477917) | Rezultatele filtrării | Rezultatele filtrării | Cod sursa (job #1981535) | Cod sursa (job #2663020)
#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;
}