Cod sursa(job #2764935)

Utilizator alphapowrrBerintan Daniel alphapowrr Data 23 iulie 2021 17:19:12
Problema Jocul Flip Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.42 kb
#include <fstream>
#include <cmath>
#include <iostream>


/*Functionare:verific suma nr. negative de pe coloane respectiv linii, iar daca este mai mare decat
 * cea a numerelor pozitive inmultesc coloana/linia cu -1.
 * La final, se afla suma totala.
 */

using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
int main()
{
    int N,M,mat[16][16],sumaNeg,sumaPoz,sumaFinala=0;
    in>>N>>M;
    for(int i=0;i<N;i++)
    {
        for(int j=0;j<M;j++)
            in>>mat[i][j];
    }
    //verificare pe coloane
    for(int x=0;x<N;x++)
    {
        sumaNeg=0;
        sumaPoz=0;
        for(int y=0;y<M;y++)
        {
            if(mat[x][y]<0)
            sumaNeg+=mat[x][y];
            else sumaPoz+=mat[x][y];

        }
        if(abs(sumaNeg)>sumaPoz)
        {
            for(int y=0;y<M;y++)
            {
               mat[x][y]*=-1;

            }
        }


    }
    //verificare pe linii
   for(int y=0;y<N;y++)
    {
        sumaNeg=0;
        sumaPoz=0;
        for(int x=0;x<M;x++)
        {
            if(mat[x][y]<0)
                sumaNeg+=mat[x][y];
            else sumaPoz+=mat[x][y];

        }
        if(abs(sumaNeg)>sumaPoz)
        {
            for(int x=0;x<M;x++)
            {
                mat[x][y]*=-1;

            }
        }

    }

    //suma finala
    for(int i=0;i<N;i++)
    {
        for(int j=0;j<M;j++)
            sumaFinala+=mat[i][j];
    }
    out<<sumaFinala;


    return 0;
}