Cod sursa(job #2447677)

Utilizator biancaandreeacBianca Andreea Ciuche biancaandreeac Data 14 august 2019 11:33:05
Problema Jocul Flip Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.41 kb
#include <iostream>
#include <fstream>
using namespace std;


int main() {
    ifstream fin;
    ofstream fout;

    fin.open("flip.in");
    fout.open("flip.out");

    int n, m, s;
    int max = -1000;
    fin >> n >> m;
    int board[n][m];
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) {
            fin >> board[i][j];
        }
    }

    bool ok = false;
    while (!ok) {
        ok = true;
        // verific coloanele
        for (int i = 0; i < n; ++i) {
            s = 0;
            for (int j = 0; j < m; ++j) {
                s += board[i][j];
            }
            if (s < 0) {
                for (int j = 0; j < m; ++j) {
                    board[i][j] = -board[i][j];
                    ok = false;
                }
            }
        }
        // verific liniile
        for (int j = 0; j < m; ++j) {
            s = 0;
            for (int i = 0; i < n; ++i) {
                s += board[i][j];
            }
            if (s < 0) {
                for (int i = 0; i < n; ++i) {
                    board[i][j] = -board[i][j];
                    ok = false;
                }
            }
        }
        s = 0;
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < m; ++j) {
               s += board[i][j];
            }
        }
        if (s > max) {
            max = s;
        }
    }

    
    fout << max;

    fin.close();
    fout.close();
    return 0;
}