Cod sursa(job #17351)

Utilizator therain3rVlad Dumitrescu therain3r Data 15 februarie 2007 19:00:18
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <cstdio>
#include <cstdlib>
#include <math.h>

using namespace std;

int flip_col[17];
int tabla[17][17],n,m;

int gen_flip_col(int x) {
    int k=1;
    while (x) {
          if(x%2==0) flip_col[k]=0;
          else flip_col[k]=1;
          k++;
          x=x/2;
    }
    return 1;
}

int suma_linie(int x) {
    int scc=0;
    for (int i=1;i<=m;i++)
        if (flip_col[i]==1) scc=scc-tabla[x][i];
        else scc=scc+tabla[x][i];    
    return scc;
}

int main() {
    int s=0,sc,sl=0;
    freopen("flip.in","r",stdin);
    scanf("%d %d",&n,&m);
    for (int i=1;i<=n;i++)
        for (int j=1;j<=m;j++)
            scanf("%d",&tabla[i][j]);
    for (int i=0;i<pow(2,m);i++) {
        sc=0;
        gen_flip_col(i);
        for (int j=1;j<=n;j++) {
            sl=suma_linie(j);
            if (sl<0) sc=sc-sl;
            else sc=sc+sl;
        }
        if (sc>s) s=sc;
    }
    freopen("flip.out","w",stdout);
    printf("%d",s);
    return 1;
}