Cod sursa(job #939985)

Utilizator TheShadowsAlexandru Cristian TheShadows Data 15 aprilie 2013 12:20:34
Problema Jocul Flip Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<fstream>
using namespace std;
long long n, m, a[17][17], col[17], maxsum=0;
void verif(){
    int lin[17][2];
    for(int i=1; i<=n; i++){
        lin[i][0]=0; lin[i][1]=0;
    }
    int sum=0;
    for(int i=1; i<=n; i++){
        for(int j=1; j<=m; j++){
            if(a[i][j]*col[j]>0)
                lin[i][0]+=a[i][j]*col[j];
            else
                lin[i][1]+=a[i][j]*col[j];
        }
        if(lin[i][0]+lin[i][1]>0){
            sum+=lin[i][0]+lin[i][1];
        }else{
            sum+=lin[i][0]*(-1)+lin[i][1]*(-1);
        }
    }
    if(sum>maxsum)
        maxsum=sum;
}
void gen(int j){
    col[j]=1;
    if(j<m)
        gen(j+1);
    else{
        verif();
    }

    col[j]=-1;
    if(j<m)
        gen(j+1);
    else{
        verif();
    }
}
int main(){
    ifstream in("flip.in");
    ofstream out("flip.out");
    in>>n>>m;
    for(int i=1; i<=n; i++)
        for(int j=1; j<=m; j++){
            in>>a[i][j];
        }
    gen(1);
    out<<maxsum<<"\n";
    return 0;
}