Cod sursa(job #1536092)

Utilizator mbogdanManu Bogdan mbogdan Data 25 noiembrie 2015 18:08:17
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.26 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;
    }
    long s1 =0;
    long s2 =0;

    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;
        }

        for(int i=1; i<=n; i++)
            for(int j=1; j<=m; j++)
                s1+=map[i][j];
    } 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];

        }

        for(int i=1; i<=n; i++)
            for(int j=1; j<=m; j++)
                s2+=map[i][j];
    }


    ofstream g("flip.out");
//g<<sumaL<<" "<<sumaC<<endl;
    g<<(s1<s2?s2:s1);
    g.close();
    return 0;
}