Cod sursa(job #1014584)

Utilizator brainwashed20Alexandru Gherghe brainwashed20 Data 22 octombrie 2013 21:46:47
Problema Jocul Flip Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<fstream>
#include<vector>
#include<algorithm>

using namespace std;

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

int n, m, maxsum, sol = -1<<30;
vector<vector<int>> mat;
vector<int> st;

void back(int k) {

    if(k == m) {
        int i, j, s, rez = 0;
        for (i=1; i<=n; ++i) {
            s = 0;
            for (j=1; j<=m; ++j)
                s += st[j-1] * mat[i][j];
            if(s < 0)
                s = -s;
            rez += s;
        }
        sol = max(rez, sol);
    }
    else {
        st[k] = 1;
        back(k+1);

        st[k] = -1;
        back(k+1);
    }

}
int main() {

    int i, j;

    f >> n >> m;

    mat.resize(n+1, vector<int>(m+1));
    st.resize(n+1, 0);

    for (i=1; i<=n; ++i)
        for (j=1; j<=m; ++j) {
            f >> mat[i][j];
            maxsum += mat[i][j];
        }

    back(0);

    g << sol;

    f.close();
    g.close();

    return 0;
}