Cod sursa(job #2195977)

Utilizator georgiuadrianadrian georgiuadrian Data 17 aprilie 2018 22:22:32
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>

using namespace std;
int a[20][20],m,n,smax;
int v[20];
int c[20];

void btk (int k)
{
    if (k > m)
    {
        int suma = 0;
        for (int i=1; i<=n; i++)
            for (int j=1; j<=m; j++)
                suma += a[i][j] * v[i] * c[j];
        if (suma > smax)
            smax=suma;
    }
    else
    {
        c[k] = 1;
        btk (k + 1);
        c[k] = -1;
        btk (k+1);
    }
}



void backtrack (int k)
{
    if (k > n)
    {
        ///suma
        btk(1);
    }
    else
    {
        v[k] = 1;
        backtrack (k+1);
        v[k] = -1;
        backtrack (k+1);
    }
}



int main()
{
    ifstream f("flip.in");
    ofstream g("flip.out");
    int i,j;
    f >> n >> m;
    for (i=1; i<=n; i++)
        for (j=1; j<=m; j++)
            f>>a[i][j];
    backtrack (1);
    g << smax;
    return 0;
}