Cod sursa(job #1867169)

Utilizator gandacbucatarieAndrei Candet gandacbucatarie Data 3 februarie 2017 20:01:30
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.35 kb
#include <fstream>

using namespace std;

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

int a,b, v[10000][10000];

int sum(int line, int switcher){
    int sume=0;
    for(int i=1; i<=b; i++){
        sume+=switcher*v[line][i];
    }
    return sume;
}

int sum2(int line, int switcher){
    int sume=0;
    for(int i=1; i<=a; i++){
        sume+=switcher*v[i][line];
    }
    return sume;
}

void switchit(int line, int switcher){
    //g<<"comut "<<line<<'\n';
    for(int i=1; i<=b; i++){
        v[line][i]=switcher*v[line][i];
    }
}

void switchit2(int line, int switcher){
    //g<<"comut "<<line<<'\n';
    for(int i=1; i<=a; i++){
        v[i][line]=switcher*v[i][line];
    }
}

int main()
{
    f>>a>>b;

    for(int i=1; i<=a; i++)
        for(int j=1; j<=b; j++){
            f>>v[i][j];
        }

    int S=0;

    for(int i=1; i<=a; i++){
        S=0;
        if(sum(i, 1) >= sum(i, -1))
            S += sum(i, 1);
        else
            S += sum(i, -1), switchit(i, -1);
    }

    for(int i=1; i<=b; i++){
        S=0;
        if(sum2(i, 1) >= sum2(i, -1))
            S += sum2(i, 1);
        else
            S += sum2(i, -1), switchit2(i, -1);
    }

    S=0;
    for(int i=1; i<=a; i++){
        S += sum(i, 1);
    }

    g<<S;

    f.close();
    g.close();
    return 0;
}