Cod sursa(job #2756199)

Utilizator MariusAndrei16Pricope Marius MariusAndrei16 Data 30 mai 2021 11:28:10
Problema Jocul Flip Scor 20
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul II Marime 1.33 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int N , M; //dimensiunile tablei
int tabla[257][257];

void citire()
{
    in >> N >> M;
    for (int i = 1; i <= N; i++)
    {
        for (int j = 1; j <= M; j++)
        {
            in >> tabla[i][j];
            tabla[i][M+1] += tabla[i][j];
        }
    } 
}

void transformare_linii()
{
    for (int i = 1; i <= N; i++)
    {
        if(tabla[i][M+1] < 0)
        {
            for (int j = 1; j <= M; j++)
            {
                tabla[i][j] *=-1;
            }   
        }
    } 
}

void transformare_coloane()
{
    for (int j = 1; j <= M; j++)
    {
        for (int i = 1; i <= N; i++)
        {
            tabla[N+1][j]+=tabla[i][j];
        }
    } 

    for (int i = 1; i <= M; i++)
    {
        if(tabla[N+1][i] < 0)
        {
            for (int j = 1; j <= N; j++)
            {
                tabla[j][i] *=-1;
            }  
             tabla[N+1][i]*=-1;
        }
    } 
}

int suma()
{
    for (int i = 1; i <= M; i++)
    {
        tabla[N+1][M+1] += tabla[N+1][i];
    }

    return tabla[N+1][M+1];
    
}

int main()
{
    citire();
    transformare_linii();
    transformare_coloane();
    out << suma();
    return 0;
}