Cod sursa(job #1468789)

Utilizator mihaiadelinamihai adelina mihaiadelina Data 6 august 2015 23:33:47
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <iostream>
using namespace std;

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

int a[17][17], p[17], m, n, maxim;

void calculeaza() {
    int i, j, total = 0, sum = 0;

    for (j = 1; j <= m; j++) {
        sum = 0;
        for (i = 1; i <= n; i++) {
            if(p[i] == 0) {
                sum += a[i][j];
            }
            else {
                sum -= a[i][j];
            }
        }
        if (sum < 0) {
            sum = -sum;
        }
        total += sum;
    }

    maxim = total > maxim ? total : maxim;
    /*if (total > maxim) {
        maxim = total;
    }
    */
}

void backtracking(int k) {
    if (k > n) {
        calculeaza();
    }
    else {
        p[k] = 0;
        backtracking(k + 1);
        p[k] = 1;
        backtracking(k + 1);
    }
}

int main() {
    int i, j;
    fin >> n >> m;

    for (i = 1; i <= n; i++) {
        for (j = 1; j <= m; j++) {
            fin >> a[i][j];
        }
    }

    backtracking(1);

    fout << maxim;

    return 0;
}