Cod sursa(job #2260050)

Utilizator papinub2Papa Valentin papinub2 Data 14 octombrie 2018 12:57:53
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
#include <vector>
#include <cmath>
#include <algorithm>
#define inf 256000000

using namespace std;

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

void coloana_random(int k, int&n, int&m, int&maxim, vector<int>&col, vector<vector<int> >&v)
{
    if (k == m + 1)
    {
        int rez = 0;
        for (int i = 1; i <= n; i++)
        {
            int rez_lin = 0;
            for (int j = 1; j <= m; j++)
                rez_lin = rez_lin + col[j] * v[i][j];

            rez = rez + abs(rez_lin);
        }

        maxim = max(maxim, rez);
        return;
    }

    col[k] = -1;
    coloana_random(k + 1, n, m, maxim, col, v);
    col[k] = 1;
    coloana_random(k + 1, n, m, maxim, col, v);
}

int main()
{
    int n, m, maxim = -inf;
    in >> n >> m;

    vector<int> col(m + 1);
    vector<vector<int> > v(n + 1, vector<int>(m + 1));

    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            in >> v[i][j];

    coloana_random(1, n, m, maxim, col, v);

    out << maxim;
    return 0;
}