Cod sursa(job #2040439)

Utilizator modulopaulModulopaul modulopaul Data 15 octombrie 2017 19:56:12
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
#include <cstdio>
#include <cmath>
#define MAXNM 17

using namespace std;
FILE *fin=fopen("flip.in","r"),*fout=fopen("flip.out","w");
int n,m,mt[MAXNM][MAXNM],maxs;
bool st[MAXNM];
void calc(){
    int auxs=0;
    for(int j=1;j<=m;j++){
        int sc=0;
        for(int i=1;i<=n;i++){
            if(st[i]==0){
                sc-=mt[i][j];
            }
            else
                sc+=mt[i][j];
        }
        if(sc<0){
            sc*=-1;
        }
        auxs+=sc;
    }
    if(auxs>maxs) maxs=auxs;
}
void bt(int niv){
    if(niv>n){
        calc();
        return;
    }
    for(int i=0;i<=1;i++){
        st[niv]=i;
        bt(niv+1);
    }
}
int main(){
    fscanf(fin,"%d%d",&n,&m);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            fscanf(fin,"%d",&mt[i][j]);
            maxs+=mt[i][j];
        }
    }
    bt(1);
    fprintf(fout,"%d",maxs);
    return 0;
}