Cod sursa(job #2407970)

Utilizator bluestorm57Vasile T bluestorm57 Data 17 aprilie 2019 13:44:30
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>

using namespace std;

ifstream f("flip.in");
ofstream g("flip.out");

typedef long long int ll;
const int Nmax = 18;
int mat[Nmax][Nmax];
int n,m;
ll summax;

void afisaremat(){
    int i,j;
    for(i = 1 ; i <= n ; i++){
        for(j = 1 ; j <= m ; j++)
            g << mat[i][j] << " ";
        g << "\n";
    }
}

void calculeaza(){
    ll sum = 0, s = 0;
    int i,j;
    for(j = 1 ; j <= m; j++){
        s = 0;
        for(i = 1; i <= n; i++)
            s += mat[i][j];

        if(s < 0)
            s *= -1;

        sum += s;
    }

    summax = max(summax, sum);

}

void change(int k){
    int i;
    for(i = 1 ; i <= m; i++)
        mat[k][i] *= -1;
}

void back(int k){
    if(k > n)
        calculeaza();
    else{
        change(k);
        back(k + 1);
        change(k);
        back(k + 1);
    }

}

int main(){
    int i,j;
    f >> n >> m;

    for(i = 1 ; i <= n; i++)
        for(j = 1 ; j <= m ; j++)
            f >> mat[i][j];

    //afisaremat();

    back(1);

    g << summax;
    return 0;
}