Cod sursa(job #3253993)

Utilizator KRISTY06Mateiu Ianis Cristian Vasile KRISTY06 Data 5 noiembrie 2024 18:52:15
Problema Jocul Flip Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <set>
#include <algorithm>
using namespace std;

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

int n, m, mt[17][17];

long long ans;

void changeLine(int line) {
    for (int j = 1; j <= m; ++j) {
        mt[line][j] = -mt[line][j];
    }
}

void changeCol(int col) {
    for (int i = 1; i <= n; ++i) {
        mt[i][col] = -mt[i][col];
    }
}

long long computeSum() {
    long long sum = 0;
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= m; ++j) {
            sum += mt[i][j];
        }
    }
    return sum;
}

void gen(int pos, bool isComuted) {
    if (pos == n + m + 1) {
        ans = max(ans, computeSum());
        return;
    }
    if (pos <= n && isComuted) {
        changeLine(pos);
    } else if (pos > n && isComuted) {
        changeCol(pos - n);
    }
    gen(pos + 1, 0);
    gen(pos + 1, 1);
}

int main() {
    fin >> n >> m;
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= m; ++j) {
            fin >> mt[i][j];
        }
    }
    gen(0, 0);
    fout << ans;
    return 0;
}