Cod sursa(job #2891125)

Utilizator vvw22Vasile Vornicescu vvw22 Data 17 aprilie 2022 16:39:26
Problema Jocul Flip Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.52 kb
#include <bits/stdc++.h>

using namespace std;

int sumLinii[16];
int sumColoa[16];
int Map[16][16];
int N,M;

void SwitchLine(int i)
{
    for(int j=0; j<M; j++)
    {
        Map[j][i]*=-1;

        sumColoa[j]+=2*Map[j][i];
    }

    sumLinii[i]*=-1;
}

void SwitchColom(int j)
{
    for(int i=0; i<N; i++)
    {
        Map[j][i]*=-1;

        sumLinii[i]+=2*Map[j][i];
    }

    sumColoa[j]*=-1;
}

int GetSum()
{
    int rezult = 0;

    if(N>=M)
    {
        for(int j=0; j<M; j++)
        {
            rezult+=sumColoa[j];
        }
    }
    else
    {
        for(int i=0; i<N; i++)
        {
            rezult+=sumLinii[i];
        }
    }

    return rezult;
}

int main()
{
    ifstream in("flip.in");
    in>>N>>M;

    for(int i=0; i<N; i++)
    {
        for(int j=0; j<M; j++)
        {
            in>>Map[j][i];
            sumLinii[i]+=Map[j][i];
            sumColoa[j]+=Map[j][i];
        }
    }

    in.close();

    bool negative = true;

        for(int j=0; j<M; j++)
        {
            if(sumColoa[j]<0)
            {
                SwitchColom(j);
                //cout<<sumColoa[j]<<" ";
            }
        }

        //std::cout<<"\n";

        for(int i=0; i<N; i++)
        {
            if(sumLinii[i]<0)
            {
                SwitchLine(i);
                //cout<<sumLinii[i]<<" ";
            }
        }

    int rezult = GetSum();

    ofstream out("flip.out");
    out<<rezult;
    out.close();
}