Cod sursa(job #1318251)

Utilizator NiceRouchyPirvu Rares NiceRouchy Data 15 ianuarie 2015 19:43:40
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.86 kb
#include <fstream>

using namespace std;

int main()
{
    int n, m, i, y, test = 0, S, N;

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

    in >> n >> m;

    int flip[n][m];

    for (i=0; i<n; i++){
        for (y=0; y<m; y++){
            in >> flip[i][y];
        }
    }

    if (n > m){
        for (i=0; i<n; i++){
            for (y=0; y<m; y++){
                if (flip[i][y] > 0)
                    S = S + flip[i][y];
                else
                    if (flip[i][y] != 0)
                        N = N + flip[i][y] * -1;
            }
            if (N > S){
                for (y=0; y<m; y++){
                    if (flip[i][y] != 0)
                        flip[i][y] = flip[i][y] * -1;
                }
            }
            S = 0;
            N = 0;
            test = 1;
        }
    }
    for (i=0; i<m; i++){
        for (y=0; y<n; y++){
            if (flip[y][i] > 0)
                S = S + flip[y][i];
            else
                if (flip[y][i] != 0)
                    N = N + flip[y][i] * -1;
        }
        if (N > S){
            for (y=0; y<n; y++){
                if (flip[y][i] != 0)
                    flip[y][i] = flip[y][i] * -1;
            }
        }
        S = 0;
        N = 0;
    }
    if (test != 1){
        for (i=0; i<n; i++){
            for (y=0; y<m; y++){
                if (flip[i][y] > 0)
                    S = S + flip[i][y];
                else
                    if (flip[i][y] != 0)
                        N = N + flip[i][y] * -1;
            }
            if (N > S){
                for (y=0; y<m; y++){
                    if (flip[i][y] != 0)
                        flip[i][y] = flip[i][y] * -1;
                }
            }
            S = 0;
            N = 0;
        }
    }

    out << S;

    return 0;
}