Cod sursa(job #769641)

Utilizator ContraPunctContrapunct ContraPunct Data 20 iulie 2012 12:52:11
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<cstdio>

using namespace std;

int N,M;
int mat[17][17];
long long sumM = 0 ;
int flipC[17];

void ReadData(){
    int i,j;
    freopen("flip.in","r",stdin);
    freopen("flip.out","w",stdout);
    scanf("%d %d",&N,&M);
    for(i=1;i<=N;++i)
        for(j=1;j<=M;++j)
            scanf("%d ",&mat[i][j]);            
}

void Sum(){
    int i,j;
    long long suma = 0, sumaP=0 ;
    for(i=1;i<=N;++i){
        sumaP = 0;
        for(j=1;j<=M;++j)
            sumaP += mat[i][j] * flipC[j] ;        
        if(sumaP < 0)
            sumaP = sumaP*(-1);
        suma += sumaP;
    }
    if(suma > sumM)
        sumM = suma;
}
void BackC(int top){
    if(top == (M + 1) ) {
        Sum();
        return;
    }
    flipC[top] = -1;
    BackC(top+1); 
    flipC[top] = 1;
    BackC(top+1);    
}
void WriteData(){
    printf("%lld\n",sumM);
}
 
int main(){
    ReadData();
    BackC(1);
    WriteData();
    return 0;
}