Cod sursa(job #279300)

Utilizator chibicitiberiuChibici Tiberiu chibicitiberiu Data 12 martie 2009 19:21:47
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include<fstream>
#define sizelimit 17
using namespace std;

int array[sizelimit][sizelimit], n, m;
long long sum, sumpos, sumneg;

void read()
{
    ifstream in ("flip.in");
    in>>n>>m;
    for (int i=0;i<n;i++)
         for (int j=0;j<m;j++)
              in>>array[i][j];
    in.close();
}

void comutalinia(int linia)
{
    for (int i=0;i<m;i++)
        array[linia][i]*=-1;
}

void comutacoloana(int coloana)
{
    for (int i=0;i<n;i++)
        array[i][coloana]*=-1;
}

int main()
{
    read();

    for (int i=0;i<n;i++) {
        sumpos=0; sumneg=0;
        for (int j=0;j<m;j++) {
            if (array[i][j]>0) sumpos+=array[i][j];
            else if (array[i][j]<0) sumneg+=array[i][j]*(-1);
        }
        if (sumneg > sumpos) comutalinia(i);
    }

    for (int j=0;j<m;j++) {
        sumpos=0; sumneg=0;
        for (int i=0;i<n;i++) {
            if (array[i][j]>0) sumpos+=array[i][j];
            else if (array[i][j]<0) sumneg+=array[i][j]*(-1);
        }
        if (sumneg > sumpos) comutacoloana(j);
    }

    for (int i=0;i<n;i++)
        for (int j=0;j<m;j++)
            sum+=array[i][j];

    ofstream out ("flip.out");
    out<<sum;
    out.close();

    return 0;
}