Cod sursa(job #2181565)

Utilizator ionuttiplea2001Tiplea Ionut ionuttiplea2001 Data 21 martie 2018 18:58:33
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 kb
#include        <iostream>
#include        <fstream>

using namespace std;

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

const int Nmax = 21;

int n , m , a[Nmax][Nmax];

void citire()
{
    fin >> n >> m ;
    for (int i = 1; i <= n; i ++)
    {
        for (int j = 1; j <= m; j ++)
            fin >> a[i][j];
    }
}

void comutare_linie(int i )
{
    for(int j = 1 ; j <= m ; j ++ )
        a[i][j] = a[i][j] - 2*a[i][j];
}

void comutare_coloana(int j)
{
    for (int i = 1 ; i <= n ; i ++ )
        a[i][j] = a[i][j] - 2* a[i][j];
}

void calc()
{
    int k = 1 ;
    while ( k != 0 )
    {
        k = 0 ;
        int s = 0 ;
        for (int i = 1; i <= n; i ++)
        {
            s = 0 ;

            for(int j = 1; j <= m; j ++)
            {
                s = s + a[i][j];
            }

            if(s < 0 )
            {
                comutare_linie(i);
                k ++;
            }
        }

        for (int j = 1; j <= m; j ++)
        {
            s = 0;
            for(int i = 1; i <= n; i ++)
            {
                s = s + a[i][j];
            }

            if(s < 0 )
               {
                 comutare_coloana(j);
                 k ++;
               }
        }
    }
}

int main()
{
    citire();
    calc();
    int s = 0 ;
    for (int i = 1; i <= n; i ++)
        {
         for(int j = 1; j <= m; j ++)
          s = s + a[i][j];
        }
    fout << s ;
    return 0;
}