Cod sursa(job #991410)

Utilizator Master011Dragos Martac Master011 Data 30 august 2013 14:54:41
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<cstdio>
using namespace std;

const int Lg = 20;
int a[Lg][Lg], s[Lg] , n, m, sol;

inline int max (int a, int b){

    return a > b ? a : b ;
}

void Sum (){
    int total = 0, part;
    for(short int j = 1 ; j <= m ; ++j){
        part=0;
        for(short int  i = 1 ; i <= n ; ++i)
            if(s[i]) part+=a[i][j];
            else part+=-a[i][j];
        total += part ;
        sol = max (total, sol);
    }

}

void Bk (int poz){
    if (poz == n+1){
        Sum();
        return;
    }

    for (short int i = 0 ; i < 2 ; ++i){
        s[poz]=i;
        Bk(poz+1);
    }
}

int main(){
    FILE *in=fopen("flip.in","r");
    FILE *out=fopen("flip.out","r");

    fscanf(in,"%d%d",&n,&m);

    for (short int i = 1 ; i <= n ; ++i)
        for (short int j = 1 ; j <= m ; ++j)
            fscanf (in,"%d",&a[i][j]);

    Bk (1);

    fprintf(out,"%d\n",sol);
    fclose(in);
    fclose(out);
    return 0;
}