Cod sursa(job #2042780)

Utilizator adipopaAdrian Popa adipopa Data 19 octombrie 2017 08:46:17
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <cmath>

using namespace std;

ifstream fin("flip.in");
ofstream fout("flip.out");

int n, m;
int x[16][16];
int v[100], solution;

void readData() {
    fin >> n >> m;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            fin >> x[i][j];
        }
    }
}

int sum() {
    int sol=0;
    for (int i = 0; i < n; i++) {
        int sum = 0;
        for (int j = 0; j < m; j++) {
            sum += v[j] * x[i][j];
        }
        sol += max(sum, -sum);
    }
    return sol;
}

void flip(int p) {
    if(p == m+1) {
        solution = max(solution, sum());
        return;
    }
    v[p] = 1;
    flip(p + 1);
    v[p] = -1;
    flip(p + 1);
}

int main() {
    readData();
    flip(0);
    fout << solution;
    return 0;
}