Cod sursa(job #1536088)

Utilizator mbogdanManu Bogdan mbogdan Data 25 noiembrie 2015 17:59:39
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.11 kb
#include <fstream>
using namespace std;

int main() {
    long map[17][17];
    int n, m;
    ifstream f("flip.in");
    f>>n>>m;
    for(int i=1; i<=n; i++)
        for(int j=1; j<=m; j++) {
            f>>map[i][j];
        }
    f.close();

    long sumaL = 0;
    int x = 0;
    long sumaC = 0;
    int y = 0;

    for(int i=1; i<=n; i++) {

        long suma = 0;
        for(int j=1; j<=m; j++) {
            suma+= map[i][j];
        }
        if(suma<0) {
            x ++;
            suma = -suma;
        }
        sumaL +=  suma;
    }

    for(int j=1; j<=m; j++) {

        long suma = 0;
        for(int i=1; i<=n; i++) {
            suma+= map[i][j];
        }
        if(suma<0) {
            suma = -suma;
        }
        sumaC +=  suma;
    }


    if(sumaL>sumaC) {
        for(int i=1; i<=n; i++) {
            long suma = 0;
            for(int j=1; j<=m; j++) {
                suma+= map[i][j];
            }
            if(suma<0)
                for(int j=1; j<=m; j++)
                    map[i][j] = -1* map[i][j];

        }

        for(int j=1; j<=m; j++) {

            long suma = 0;
            for(int i=1; i<=n; i++) {
                suma+= map[i][j];
            }
            if(suma<0)
                for(int i=1; i<=n; i++)
                    map[i][j] *=-1;
        }
    } else {
        for(int j=1; j<=m; j++) {

            long suma = 0;
            for(int i=1; i<=n; i++) {
                suma+= map[i][j];
            }
            if(suma<0)
                for(int i=1; i<=n; i++)
                    map[i][j] *=-1;
        }
        for(int i=1; i<=n; i++) {
            long suma = 0;
            for(int j=1; j<=m; j++) {
                suma+= map[i][j];
            }
            if(suma<0)
                for(int j=1; j<=m; j++)
                    map[i][j] = -1* map[i][j];

        }
    }

    long s =0;
    for(int i=1; i<=n; i++)
        for(int j=1; j<=m; j++)
            s+=map[i][j];

    ofstream g("flip.out");
    //g<<sumaL<<" "<<sumaC<<endl;
    g<<s;
    g.close();
    return 0;
}