Cod sursa(job #3143882)

Utilizator SSKMFSS KMF SSKMF Data 2 august 2023 19:38:26
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>
using namespace std;

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

int linii , coloane , matrice[17][17];

int main ()
{
    cin >> linii >> coloane;

    int suma_maxima = 0;
    for (int linie = 1 ; linie <= linii ; linie++)
        for (int coloana = 1 ; coloana <= coloane ; coloana++)
            { cin >> matrice[linie][coloana]; suma_maxima += matrice[linie][coloana]; }
 
    for (int masca = 0 , limita = (1 << coloane) ; masca < limita ; masca++)
    {
        int suma = 0;
        for (int linie = 1 ; linie <= linii ; linie++)
        {
            int suma_negativ = 0 , suma_pozitiv = 0;
            for (int coloana = 1 ; coloana <= coloane ; coloana++)
                if ((matrice[linie][coloana] * ((masca >> (coloana - 1) & 1) ? -1 : 1)) < 0) suma_negativ += abs(matrice[linie][coloana]);
                else suma_pozitiv += abs(matrice[linie][coloana]);

            suma += max(suma_negativ , suma_pozitiv) - min(suma_negativ , suma_pozitiv);
        }

        suma_maxima = max(suma_maxima , suma);
    }

    cout << suma_maxima;
    cout.close(); cin.close();
    return 0;
}