Cod sursa(job #2740324)

Utilizator DragosC1Dragos DragosC1 Data 12 aprilie 2021 16:44:28
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <cmath>
#include <fstream>
using namespace std;

int n, m;
int a[21][21];
int smax;
int semn[21];

void read() {
    int i, j;
    ifstream f("flip.in");
    f >> n >> m;
    for (i = 1; i <= n; i++)
        for (j = 1; j <= m; j++)
            f >> a[i][j];
    f.close();
}

void verifica() {
    int i, stotal = 0, s, j;
    for (i = 1; i <= n; i++) {
        s = 0;
        for (j = 1; j <= m; j++)
            s += a[i][j] * semn[j];
        stotal += abs(s);
    }
    if (stotal > smax) {
        smax = stotal;
    }
}

void back(int k) {
    if (k == m + 1)
        verifica();
    else {
        int i;
        for (i = 1; i <= 2; i++) {
            if (i == 1)
                semn[k] = 1;
            else semn[k] = -1;
            back(k + 1);
        }
    }
}

void solve() {
    back(1);
}

void output() {
    ofstream g("flip.out");
    g << smax;
    g.close();
}   

int main() {
    read();
    solve();
    output();
    return 0;
}