Cod sursa(job #2862808)

Utilizator Matei_MunteanuMunteanu Matei Ioan Matei_Munteanu Data 5 martie 2022 21:05:33
Problema Jocul Flip Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.38 kb
#include <bits/stdc++.h>
using namespace std;
#define NMAX 260000000


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

int n, m;
int ma[20][20];
long long suma_max = -NMAX;
int main()
{
    fin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= m; j++)
        {
            fin >> ma[i][j];
        }
    }
    for (int conf = 0; conf < (1 << n); conf++)
    {
        bitset<20> flip = conf;
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= m; j++)
            {
                if (flip[i  - 1] == 1)
                {
                    ma[i][j] *= -1;
                }
            }
        }
        for (int j = 1; j <= m; j++)
        {
            long long suma_col = 0;
            for (int i = 1; i <= n; i++)
            {
                suma_col += ma[i][j];
            }
            if (suma_col < 0)
            {
                for (int i = 1; i <= n; i++)
                {
                    ma[i][j] *= -1;
                }
            }
        }
        long long suma = 0;
        for (int i = 1; i <= n; i++)
        {
            for (int j = 1; j <= m; j++)
            {
                suma += ma[i][j];
            }
        }
        suma_max  = max(suma_max, suma);
    }
    fout << suma_max;
    fin.close();
    fout.close();
    return 0;
}