Cod sursa(job #1295282)

Utilizator BogdacutuSeniuc Bogdan Bogdacutu Data 19 decembrie 2014 09:10:12
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("flip.in");
ofstream fout("flip.out");
#define cin fin
#define cout fout

int n, m;
int mat[16][16];

int mul(int x) {
    int n = 1;
    while (x-- > 0) n = -n;
    return n;
}

void read() {
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cin >> mat[i][j];
        }
    }
}

long int solve() {
    long int res = 0;
    for (int i = 0; i < (1 << n); i++) {
        int t[16][16];
        for (int j = 0; j < n; j++) {
            int mult = mul((i & (1 << j)) != 0);
            for (int k = 0; k < m; k++) {
                t[j][k] = mult * mat[j][k];
            }
        }
        long int s = 0;
        for (int k = 0; k < m; k++) {
            long int sc = 0;
            for (int j = 0; j < n; j++) {
                sc += t[j][k];
            }
            if (sc < 0) sc = -sc;
            s += sc;
        }
        res = max(res, s);
    }
    return res;
}

int main() {
    read();
    cout << solve() << endl;;

    return 0;
}