Cod sursa(job #2043880)

Utilizator skeniaTirla Ovidiu skenia Data 20 octombrie 2017 18:30:17
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int lines, cols, sumMax;
short stack[20];
int matrix[20][20];

void back(int level);

int matrixSum();

int main() {
    fin >> lines >> cols;
    for (int l = 1; l <= lines; ++l)
        for (int c = 1; c <= cols; ++c)
            fin >> matrix[l][c];
    back(1);
    fout<<sumMax;
    return 0;
}

void back(int level) {
    if (level == cols + 1) {
        sumMax = max(sumMax, matrixSum());
        return;
    }
    stack[level] = 1;
    back(level + 1);
    stack[level] = -1;
    back(level + 1);
}

int matrixSum() {
    int sum = 0;
    for (int l = 1; l <= lines ; ++l) {
        int tempSum = 0;
        for (int c = 1; c <= cols; ++c) {
            tempSum += stack[c] * matrix[l][c];
        }
        sum += abs(tempSum);
    }
    return sum;
}