Cod sursa(job #1388177)

Utilizator rughibemBelcineanu Alexandru Ioan rughibem Data 15 martie 2015 11:41:32
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<stdio.h>
#define MAXN 18
FILE *f=fopen("flip.in","r"), *g=fopen("flip.out","w");

long int N, M, a[MAXN][MAXN], Smax = 0;
bool v[MAXN];


void Citire(){
long int i, j;

    fscanf(f,"%ld %ld\n",&N,&M);
    for(i=1;i<=N;i++)
        for(j=1;j<=M;j++)
            fscanf(f,"%ld",&a[i][j]);
}

void Verificare(){
long int SumaT, SumaP, i, j;

    SumaT = 0;
    for(j=1;j<=M;j++){

        SumaP = 0;
        for(i=1;i<=N;i++){
            if( v[i] == 0 ) SumaP += a[i][j];
            else SumaP -= a[i][j];
        }
        if( SumaP < 0 ) SumaP = 0-SumaP;

        SumaT += SumaP;

    }
    if( Smax < SumaT ) Smax = SumaT;

}

void Back( long int k ){

    if( k > N ) Verificare();

    else
        for(int i=0;i<=1;i++){
            v[k]=i; Back(k+1);
        }

}

int main(){

    Citire();
    Back(1);
    fprintf(g,"%ld\n",Smax);

return 0;
}