Cod sursa(job #2092075)

Utilizator haruuLucian haruu Data 20 decembrie 2017 21:55:58
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.43 kb
#include <iostream>
#include <fstream>

std::ifstream is("flip.in");
std::ofstream os("flip.out");

int M, N;
int a[100][100];
int b[100][100];
int tab_sum = 0;
int poz_column = 0, rev_column = 0, poz_line = 0, rev_line = 0;

int main() {
    //std::cin >> N >> M;
    is >> N >> M;
    for(int i = 1; i <= N; ++i)
        for (int j = 1; j <= M; ++j)
            //std::cin >> a[i][j];
            is >> a[i][j];
    for(int j = 1; j <= M; ++j){
        for(int i = 1; i <= N; ++i) {
            poz_column += a[i][j];
            rev_column += (-1) * a[i][j];
        }
        if(poz_column >= rev_column)
            for(int i = 1; i <= N; ++i)
                b[i][j] = a[i][j];
        else {
            //std::cout << "Coloana " << j << " a fost schimbata!" << '\n';
            for(int i = 1; i <= N; ++i)
                b[i][j] = (-1) * a[i][j];
        }
        poz_column = 0;
        rev_column = 0;
    }

    for(int i = 1; i <= N; ++i) {
        for(int j = 1; j <= M; ++j) {
            poz_line += a[i][j];
            rev_line += (-1) * a[i][j];
        }
        if(rev_line > poz_line) {
            for(int j = 1; j <= N; ++j)
                b[i][j] = (-1) * a[i][j];
            }
        poz_line = 0;
        rev_line = 0;
    }

    for(int i = 1; i <= N; ++i)
        for (int j = 1; j <= M; ++j)
            tab_sum += b[i][j];
    //std::cout << tab_sum << '\n';
    os << tab_sum << '\n';
    is.close();
    os.close();
    return 0;
}