Cod sursa(job #2219320)

Utilizator baravomaBravo Ma baravoma Data 8 iulie 2018 14:04:45
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
//
//  main.cpp
//  flip
//
//  Created by Vlad Manea on 08/07/2018.
//  Copyright © 2018 Vlad Manea. All rights reserved.
//

#include <fstream>
#include <limits>

using namespace std;

int B[16][16];
int N, M, S;

void read() {
    ifstream fin("flip.in");
    fin >> N >> M;
    
    for (int i = 0; i < N; ++i) {
        for (int j = 0; j < M; ++j) {
            fin >> B[i][j];
        }
    }
    
    fin.close();
}

void write() {
    ofstream fout("flip.out");
    fout << S;
    fout.close();
}

int main() {
    read();
    
    int sn = 1 << N;
    int sm = 1 << M;
    int pi, pj, i, j, s, v, wi, wj;
    
    for (pi = 0; pi < sn; ++pi) {
        for (pj = 0; pj < sm; ++pj) {
            s = 0;
            
            for (i = 0; i < N; ++i) {
                wi = (pi & (1 << i)) >> i;
                
                for (j = 0; j < M; ++j) {
                    wj = (pj & (1 << j)) >> j;
                    v = wi ^ wj;
                    s += B[i][j] * (v ? -1 : 1);
                }
            }
            
            if (s > S) {
                S = s;
            }
        }
    }
    
    write();
    return 0;
}