Cod sursa(job #2023862)

Utilizator teodor440Teodor Tonghioiu teodor440 Data 19 septembrie 2017 16:44:32
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>

using namespace std;

ifstream f("flip.in");
ofstream g("flip.out");

int n, m, flip[16][16], row[16];
long maxsum = -100000000;

void compare(){
    int i, j, sum = 0, col;
    for(j = 0; j < m; j++){
        col = 0;
        for(i = 0; i < n; i++){
            if(row[i]){
                col += -flip[i][j];
            }
            else{
                col += flip[i][j];
            }
        }
        if(col < 0) col = -col;
        sum += col;
    }
    if(sum > maxsum) maxsum = sum;
}

void bkt(int i){
    if(i >= n){
        compare();
        return;
    }

    row[i] = 0;
    bkt(i+1);

    row[i] = 1;
    bkt(i+1);
}

int main()
{
    int i, j, suma = 0;
    f >> n >> m;
    for(i = 0; i < n; i++)
        for(j = 0; j < m; j++)
            f >> flip[i][j];

    bkt(0);

    g << maxsum;

    return 0;
}