Cod sursa(job #2079319)

Utilizator Marina23Oprea Marina Marina23 Data 30 noiembrie 2017 23:22:12
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>

using namespace std;

int N,M,i,j,Maxi,Sol[20],A[20][20];

void schimbcoloana(int X)
{
    int i;

    for(i=1;i<=N;i++)
        A[i][X]=-A[i][X];
}

void summax()
{
    int i,Sum,Sumlin;

    Sum=0;
    for(i=1;i<=N;i++)
    {
        Sumlin=0;
        for(j=1;j<=M;j++)
            Sumlin+=A[i][j];
        if(Sumlin>0)
            Sum+=Sumlin;
        else
            Sum-=Sumlin;
    }//for
    if(Sum>Maxi)
        Maxi=Sum;
}

void backtrack(int Nivel)
{
    int i;

    for(i=Sol[Nivel-1]+1;i<=M;i++)
    {
        Sol[Nivel]=i;
        schimbcoloana(i);
        summax();
        backtrack(Nivel+1);
        schimbcoloana(i);
    }//for i
}

int main()
{
    ifstream fin("flip.in");
    ofstream fout("flip.out");

    fin>>N>>M;
    for(i=1;i<=N;i++)
        for(j=1;j<=M;j++)
            fin>>A[i][j];
    Maxi=-999999999;
    backtrack(1);
    fout<<Maxi;

    fin.close ();
    fout.close();
    return 0;
}