Cod sursa(job #1399595)

Utilizator alittlezzCazaciuc Valentin alittlezz Data 24 martie 2015 20:26:00
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <cstdio>
#include <cstdlib>

using namespace std;

long int v[20][20],c[20];
long int N,M,i,j;
long long int max;

void calc(){
    int st,sl;
    st = 0;
    for(i = 1;i <= N;++i){
        sl = 0;
        for(j = 1;j <= M;++j){
            sl = sl + v[i][j]*c[j];
        }
        if(sl < 0){
            st = st - sl;
        }else{
            st = st + sl;
        }
    }
    if(st > max){
        max = st;
    }
}

inline void back(int pas){
    if(pas == M){
        c[pas] = 1;
        calc();
        c[pas] = -1;
        calc();
    }else{
        c[pas] = 1;
        back(pas+1);
        c[pas] = -1;
        back(pas+1);
    }
}

int main(){
    freopen("flip.in", "r", stdin);
    freopen("flip.out", "w", stdout);
    scanf("%ld %ld",&N,&M);
    for(i = 1;i <= N;++i){
        for(j = 1;j <= M;++j){
            scanf("%ld",&v[i][j]);
        }
    }
    max = 0;
    back(1);
    printf("%lld",max);
    return 0;
}