Cod sursa(job #507983)

Utilizator padreatiAurelian Tutuianu padreati Data 7 decembrie 2010 11:35:12
Problema Jocul Flip Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <cstdlib>
#include <fstream>

using namespace std;

int main(void) {

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

    int m, n;
    in >> m >> n;

    int a[n][m];

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            in >> a[i][j];
        }
    }

    int max = 1 << n;
    long ret[m];
    long total = 0;

    for (int mask = 0; mask < max; mask++) {
        for (int j = 0; j < m; j++) {
            ret[j] = 0;
        }
        for (int i = 0; i < n; i++) {
            int imask = 1 << i;
            int sign = 1;
            if (!(mask & imask))
                sign = -1;

            for (int j = 0; j < m; j++) {
                ret[j] += a[i][j] * sign;
            }
        }
        long t = 0;
        for (int i = 0; i < m; i++) {
            t += (ret[i] < 0) ? -ret[i] : ret[i];
        }
        if (t > total)
            total = t;
    }

    out << total;

    return 0;
}