Cod sursa(job #1651329)

Utilizator Andreiii500Andrei Puiu Andreiii500 Data 13 martie 2016 00:19:25
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include<iostream>
#include<fstream>
using namespace std;

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

const int N = 17;
int mat[N][N];
int v[N];
int n,m,sol = -256000000;

int suma()
{
    int i,j,aux,ans;

    ans = 0;
    for(i=1; i<=n; ++i)
    {
        aux = 0;
        for(j=1; j<=m; ++j)
            aux += mat[i][j] * v[j];

        if(aux < 0) aux *= -1;
        ans += aux;
    }

    return ans;
}

void afis()
{
    int i;
    for(i=1; i<=m; ++i) out<<(v[i]==-1?'-':'+');
    out<<" "<<sol;
    out<<"\n";
}

void bkt(int poz)
{
    if(poz == m+1)
    {
        sol = max(sol, suma());
        ///afis();
    }
    else
    {
        int i;
        for(i=0; i<=1; ++i)
        {
            if(i==0) v[poz] = -1;
            else v[poz] = 1;
            bkt(poz+1);
        }
    }
}

int main()
{
    int i,j;

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

    bkt(1);
    out<<sol;

    return 0;
}