Cod sursa(job #2347653)

Utilizator FrostfireMagirescu Tudor Frostfire Data 18 februarie 2019 22:49:35
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <iostream>
#include <cmath>

using namespace std;

ifstream f("flip.in");
ofstream g("flip.out");

int a[20][20], n, m;
long long sol;

void flipLine(int i)
{
    for(int j=1; j<=m; j++)
    {
        a[0][j] -= a[i][j];
        a[i][j] = -a[i][j];
        a[0][j] += a[i][j];
    }
}

int main()
{
    f >> n >> m;
    for(int i=1; i<=n; i++)
        for(int j=1; j<=m; j++)
        {   f >> a[i][j];
            a[0][j]+=a[i][j];
        }
    for(int i=0; i<(1<<n); i++)
    {
        long long s = 0;
        for(int j=0; j<n; j++) if(i & (1<<j)) flipLine(j+1);
        for(int j=1; j<=m; j++) s+=abs(a[0][j]);
        for(int j=0; j<n; j++) if(i & (1<<j)) flipLine(j+1);
        sol = max(sol, s);
    }
    g << sol << '\n';
    return 0;
}