Cod sursa(job #3293604)

Utilizator mateiandMatei Andone mateiand Data 12 aprilie 2025 05:33:04
Problema Jocul Flip Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
using namespace std;

int n, m, mat[20][20], ans = 0;

int scor() {
    int sum = 0;
    for (int j = 0; j < m; ++j) {
        int s = 0;
        for (int i = 0; i < n; ++i) {
            s += mat[i][j];
        }
        sum += abs(s);
    }
    return sum;
}

void flipLinie(int linie) {
    for (int j = 0; j < m; ++j) {
        mat[linie][j] = -mat[linie][j];
    }
}

void solve() {
    for (int i = 0; i < (1 << n); ++i) {
        for (int j = 0; j < n; ++j) {
            if (i & (1 << j)) {
                flipLinie(j);
            }
        }
        ans = max(ans, scor());
    }
}

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

    fin >> n >> m;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) {
            fin >> mat[i][j];
        }
    }

    solve();
    fout << ans;
    return 0;
}