Cod sursa(job #767125)

Utilizator alin.hurubaHuruba Dumitru Alin alin.huruba Data 12 iulie 2012 20:11:57
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>
using namespace std;

ifstream fi;
ofstream fo;
int n, m;
int tabla[16][16];
long long sumaMax;
long long suma;
long long sumaLinie;

bool solStack[16];

void verifica(){
    suma = 0;
    for (int i = 0; i<n; i++){
        sumaLinie = 0;
        for (int j = 0; j < m; j++){
            if (solStack[j]){
                sumaLinie += tabla[i][j];
            } else {
                sumaLinie -= tabla[i][j];
            }
        }
        if (sumaLinie < 0){
            sumaLinie = -sumaLinie;
        }
        suma += sumaLinie;
    }
    if (suma > sumaMax){
        sumaMax = suma;
    }
}

void back(int step){
    if (step == m){
        verifica();
    } else {
        solStack[step] = false;
        back(step+1);

        solStack[step] = true;
        back(step+1);
    }
}

int main(){
    sumaMax = 0;
    fi.open("flip.in");
    fi >> n >> m;
    for (int i = 0; i < n; i++){
        for (int j = 0; j < m; j++){
            fi >> tabla[i][j];
        }
    }
    fi.close();

    back(0);

    fo.open("flip.out");
    fo << sumaMax;
    fo.close();
    return 0;
}