Cod sursa(job #2587318)

Utilizator armand1Armand B armand1 Data 22 martie 2020 17:20:23
Problema Jocul Flip Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.25 kb
#include <bits/stdc++.h>
using namespace std;

long long flip[16][16];
int N, M;

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

    //istream &in = cin;
    //ostream &out = cout;

    long long S = 0;
    in >> N >> M;
    for (int i = 0;i < N; i++)
    {
        for (int j = 0; j < M; j++)
        {
            in >> flip[i][j];
            S += flip[i][j];
        }
    }
    bool flipped;
    do
    {
        flipped = false;
        for (int i = 0; i < N; i++)
        {
            long long s = 0;
            for (int j = 0; j < M; j++)
                s += flip[i][j];
            if (s < 0)
            {
                flipped = true;
                for (int j = 0; j < M; j++)
                    flip[i][j] = -flip[i][j];
                S -= 2 * s;
            }
        }
        for (int j = 0; j < M; j++)
        {
            long long s = 0;
            for (int i = 0; i < N; i++)
                s += flip[i][j];
            if (s < 0)
            {
                flipped = true;
                for (int i = 0; i < N; i++)
                    flip[i][j] = -flip[i][j];
                S -= 2 * s;
            }
        }
    }
    while (flipped);
    out << S;
}