Cod sursa(job #2772458)

Utilizator pasqualePascale Radu-Ioan pasquale Data 1 septembrie 2021 11:32:19
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <bits/stdc++.h>

using namespace std;

int N, M;
long long board[16][16];
long long sum, maxsum = -32000000000LL;
bool row[16];

void sum_board() {
    sum = 0;
    for (int j = 0; j < M; j++) {
        int s = 0;
        for (int i = 0; i < N; i++) {
            if (row[i] == true) {
                s += (-1)*board[i][j];
            }
            else {
                s += board[i][j];
            }
        }
        sum += abs(s);
    }
    maxsum = max(sum, maxsum);
}

void bkt(int k) {
    if (k == N) {
        sum_board();
    }
    else {
        row[k] = true;
        bkt(k+1);
        row[k] = false;
        bkt(k+1);
    }
}

int main() {
    freopen("flip.in", "r", stdin);
    freopen("flip.out", "w", stdout);
    cin >> N >> M;
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < M; j++) {
            cin >> board[i][j];
        }
    }
    bkt(0);
    cout << maxsum << endl;
}