Cod sursa(job #3158526)

Utilizator cyg_Alex_codegicianBarbu Alexandru cyg_Alex_codegician Data 18 octombrie 2023 22:19:12
Problema Jocul Flip Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

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

int main() {
    int N, M;
    fin >> N >> M;
    vector<vector<int>> board(N, vector<int>(M));
    vector<int> rowSum(N, 0);
    vector<int> colSum(M, 0);

    // Citim configuratia tablei de joc
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < M; j++) {
            fin >> board[i][j];
            rowSum[i] += abs(board[i][j]);
            colSum[j] += abs(board[i][j]);
        }
    }

    int maxSum = 0;

    // Începem să comutăm linii și coloane pentru a maximiza suma
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < M; j++) {
            int currentSum = 0;
            if (i % 2 == 0) {
                currentSum = rowSum[i] + colSum[j] - 2 * abs(board[i][j]);
            } else {
                currentSum = rowSum[i] + colSum[j];
            }
            maxSum = max(maxSum, currentSum);
        }
    }

    fout << maxSum << endl;

    return 0;
}