Cod sursa(job #1590150)

Utilizator BugirosRobert Bugiros Data 4 februarie 2016 19:07:54
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
using namespace std;

const int MAXN = 17;
const int INF = 1 << 30;

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

int rasp = -INF;
int v[MAXN][MAXN];
int n,m;

int solcol[MAXN];


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

void raspuns()
{
    int sum = 0;
    for (int i = 1;i <= n;++i)
    {
        int s = 0;
        for (int j = 1;j <= m;++j)
            s += v[i][j] * solcol[j];
        if (s < 0)
            sum -= s;
        else sum += s;
    }
    if (sum > rasp)
        rasp = sum;
}

void bkt(int poz)
{
    if (poz > m)
    {
        raspuns();
        return;
    }
    solcol[poz] = 1;
    bkt(poz + 1);
    solcol[poz] = -1;
    bkt(poz + 1);
    solcol[poz] = 1;
}

int main()
{
    citire();
    bkt(1);
    out << rasp << '\n';
    return 0;
}