Cod sursa(job #2353748)

Utilizator JohnnyTTache Radu Ioan JohnnyT Data 24 februarie 2019 15:58:58
Problema Jocul Flip Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <vector>
#include <fstream>

using namespace std;

int n, m;

void hFlip(vector<int> &a){
    for(i : a){
        i *= -1;
    }
}
void vFlip(vector<vector<int>> &v, int in){
    for(i : v){
        i[in] *= -1;
    }
}
int getSum(vector<int> a){
    int sum = 0;
    for(i : a){
        sum += i;
    }
    return sum;
}
int getCSum(vector<vector<int>> a, int b){
    int sum = 0;
    for(i : a){
        sum += i[b];
    }
    return sum;
}

int main(){
    fstream f("flip.in", fstream::in);
    f >> n >> m;
    vector< vector<int> > x(n, vector<int>(m));
    vector<int> hsums(n), vsums(m);
    int res = 0;
    for(int i = 0; i < x.size(); i++){
        for(j : x[i]){
            f >> j;
        }
        hsums[i] = getSum(x[i]);
        if(hsums[i] < 0){
            hFlip(x[i]);
            hsums[i] *= -1;
        }
        res += hsums[i];
    }
    int res2 = 0;
    for(int i = 0; i < m; i++){
        vsums[i] = getCSum(x, i);
        if(vsums[i] < 0){
            vFlip(x, i);
            vsums[i] *= -1;
        }
        res2 += vsums[i];
    }
    f.close();
    f.open("flip.out", fstream::out);
    res < res2 ? f << res : f << res2;
}