Cod sursa(job #3239942)

Utilizator rauls9Sandru Raul rauls9 Data 9 august 2024 13:58:24
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <iostream>
#include <fstream>
#include <climits>

using namespace std;

ifstream fin("flip.in");
ofstream fout("flip.out");

int main() {
    int N, M;
    fin >> N >> M;
    int board[17][17];
    for (int i = 0; i < N; ++i) {
        for (int j = 0; j < M; ++j) {
            fin >> board[i][j];
        }
    }
    int maxSum = INT_MIN;
    for (int rowFlipMask = 0; rowFlipMask < (1 << N); ++rowFlipMask) {
        int tempBoard[17][17];
        for (int i = 0; i < N; ++i) {
            for (int j = 0; j < M; ++j) {
                tempBoard[i][j] = board[i][j];
                if (rowFlipMask & (1 << i)) {
                    tempBoard[i][j] *= -1;
                }
            }
        }
        int currentSum = 0;
        for (int j = 0; j < M; ++j) {
            int columnSum = 0;
            for (int i = 0; i < N; ++i) {
                columnSum += tempBoard[i][j];
            }
            if (columnSum < 0) {
                columnSum *= -1;
            }
            currentSum += columnSum;
        }
        if (currentSum > maxSum) {
            maxSum = currentSum;
        }
    }
    fout << maxSum << endl;
    return 0;
}