Cod sursa(job #2725331)

Utilizator MariusAndrei16Pricope Marius MariusAndrei16 Data 18 martie 2021 20:05:49
Problema Jocul Flip Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.61 kb
#include <iostream>
#include <fstream>

using namespace std;

unsigned int N, M;
int tabla[16][16];
ofstream out("flip.out");
void citire()
{
    ifstream in("flip.in");
    in>>N>>M;
    for (unsigned int i = 0; i < N; i++)
    {
        for (unsigned int j = 0; j < M; j++)
        {
            in>>tabla[i][j];
        }   
    }
}

int suma_linie(int linie, int sens)
{
    int suma = 0;
    for(unsigned int i = 0 ; i < M ; ++i)
        suma+=tabla[linie][i] * sens;

    return suma;
}

int suma_coloana(int coloana, int sens)
{
    int suma = 0;
    for(unsigned int i = 0 ; i < N ; ++i)
        suma+=tabla[i][coloana] * sens;

    return suma;
}

void minus_linie(int linie)
{
    for (unsigned int i = 0; i < M; i++)
    {
        tabla[linie][i] *= -1;
    }
    
}

void minus_coloana(int coloana)
{
    for (unsigned int i = 0; i < N; i++)
    {
        tabla[i][coloana] *= -1;
    }
    
}

void sensul()
{
    for (unsigned int i = 0; i < M; i++)
    {
        if(suma_coloana(i,1) < suma_coloana(i,-1))
        {
                minus_coloana(i);
        }
    }

    for (unsigned int i = 0; i < N; i++)
    {
        if(suma_linie(i,1) < suma_linie(i,-1))
        {
                minus_linie(i);
        }
    }

    
}

int suma_finala()
{
    int suma = 0;
    for (unsigned int i = 0; i < N; i++)
    {
        for (unsigned int j = 0; j < M; j++)
        {
            suma = suma + tabla[i][j];
        }   
    }

    return suma;
}





int main()
{
    citire();
    sensul();
    out<<suma_finala();
    return 0;
}