Cod sursa(job #1427770)

Utilizator GeiGeiGeorge Cioroiu GeiGei Data 3 mai 2015 01:05:38
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <fstream>

using namespace std;

long ans = 0, t[16][16];
int n, m;

void bt(int poz, bool inm[16]) {
    if (poz == n) {
        int aux[16][16];
        for (int i = 0; i < n; i++)
            if (inm[i])
                for (int j = 0; j < m; j++)
                    aux[i][j] = -t[i][j];
            else
                for (int j = 0; j < m; j++)
                    aux[i][j] = t[i][j];
        long s = 0;
        for (int j = 0; j < m; j++) {
            long sp = 0;
            for (int i = 0; i < n; i++)
                sp += aux[i][j];
            s += (sp > 0) ? sp : -sp;
        }
        if (s > ans)
            ans = s;
        return;
    }
    bt(poz + 1, inm);
    inm[poz] = true;
    bt(poz + 1, inm);
    inm[poz] = false;
}

int main() {
    ifstream fi("flip.in");
    ofstream fo("flip.out");

    fi >> n >> m;

    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            fi >> t[i][j];

    bool inm[16];
    for (int i = 0; i < n; i++)
        inm[i] = false;

    bt(0, inm);

    fo << ans;

    return 0;
}