Cod sursa(job #2460175)

Utilizator simaclaraSima Clara simaclara Data 22 septembrie 2019 23:13:19
Problema Jocul Flip Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <fstream>

using namespace std;

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

int usei[18];
int M[18][18];
int usej[18];

int n,m,i,j,maxim;

void bktcol(int k)
{

    if(k>m)
    {
        int i,j;
        int suma=0;
        for(i=1;i<=n;i++)
            for(j=1;j<=m;j++)
            {
                if(usei[i]==1)
                    M[i][j]*=-1;
                if(usej[j]==1)
                    M[i][j]*=-1;
                suma+=M[i][j];
                if(usei[i]==1)
                    M[i][j]*=-1;
                if(usej[j]==1)
                    M[i][j]*=-1;
            }
        if(suma>maxim)
            maxim=suma;
    }
    else
    {
        usej[k]=0;
        bktcol(k+1);
        usej[k]=1;
        bktcol(k+1);
    }
}

void bkt(int k)
{
    if(k>n)
    {
        bktcol(1);
    }
    else
    {
        usei[k]=0;
        bkt(k+1);
        usei[k]=1;
        bkt(k+1);
    }
}


int main()
{
    cin>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            cin>>M[i][j];
    bkt(1);
    cout<< maxim << '\n';
    return 0;
}