Cod sursa(job #2374891)

Utilizator viperinulViPERiN viperinul Data 7 martie 2019 21:07:16
Problema Jocul Flip Scor 100
Compilator cpp-64 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 0;
}