Cod sursa(job #1348415)

Utilizator ducu97Radu Seteanu ducu97 Data 19 februarie 2015 18:08:02
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.39 kb
#include <fstream>
#define NMax 20

using namespace std;

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

int M[NMax][NMax];

int main()
{
    int n, m, i, j, k = 1, poz, neg;

    in >> n >> m;

    for(i = 1; i <=n; i ++)
        for(j = 1; j <= m; j ++)
            in>>M[i][j];
    while(k)
    {
        k = 0;
        for(i = 1; i <= m; i ++)
        {
            poz = 0;
            neg = 0;
            for(j = 1; j <= n; j ++)
            {
                if(M[j][i] >= 0)
                poz += M[j][i];
            else
                neg += M[j][i];
            }
            if(neg * (-1) > poz)
            {
                for(j = 1; j <= n; j ++)
                    M[j][i] = M[j][i] * (-1);
                k = 1;
            }
        }

        for(i = 1; i <= n; i ++)
        {
            poz = 0;
            neg = 0;
            for(j = 1; j <= m; j ++)
            {
                if(M[i][j] >= 0)
                poz += M[i][j];
            else
                neg += M[i][j];
            }
            if(neg * (-1) > poz)
            {
                for(j = 1; j <= m; j ++)
                    M[i][j] = M[i][j] * (-1);
                k = 1;
            }
        }
    }

    poz = 0;
    for(i = 1; i <= n; i ++)
        for(j = 1; j <= m; j ++)
            poz += M[i][j];
    out << poz;

    return 0;
}