Cod sursa(job #3219541)

Utilizator AlinAll360bivolan constantin alin AlinAll360 Data 31 martie 2024 16:51:01
Problema Jocul Flip Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.04 kb
#include <iostream>
#include <fstream>

using namespace std;

#define MAX 16

int main() {

    ifstream fin("flip.in");
    ofstream fout("flip.out");

    int N, M, m[MAX][MAX];
    int suma_linie = 0, column_holder, suma_coloana = 0, suma = 0, checker = 1, counter = 0, suma_max = 0;
    int v[MAX];

    fin>>N>>M;

    for(int i = 0; i < N; i++){
        for(int j = 0; j < M; j++){
            fin>>m[i][j];
        }
    }

    while(checker != 0 && counter < MAX){
            checker = 0;
    for(int i = 0; i < N; i++){
        for(int j = 0; j < M; j++){
            suma_linie = suma_linie + m[i][j];
            column_holder = i;
        }
        if(suma_linie < 0) {
            for(int i = 0; i < N; i++){
                m[column_holder][i] = m[column_holder][i] * -1;
            }
            suma_linie = suma_linie * -1;
            checker = 1;
                for(int i = 0; i < N; i++){
                    for(int j = 0; j < M; j++){
                        suma = suma + m[i][j];
                    }
                }
        v[counter] = suma;
        counter++;
        suma = 0;
        }
        suma_linie = 0;
    }

    for(int i = 0; i < M; i++){
        for(int j = 0; j < N; j++){
            suma_coloana = suma_coloana + m[j][i];
            column_holder = i;
        }
        if(suma_coloana < 0) {
            for(int i = 0; i < N; i++){
                m[i][column_holder] = m[i][column_holder] * -1;
            }
            suma_coloana = suma_coloana * -1;
            checker = 1;

            for(int i = 0; i < N; i++){
                for(int j = 0; j < M; j++){
                    suma = suma + m[i][j];
                }
            }
        }
        suma_coloana = 0;
    }

        v[counter] = suma;
        counter++;
        suma = 0;

    }

    for(int i = 0; i < counter; i++){
            if(suma_max < v[i]){
                suma_max = v[i];
            }
    }
    fout<<suma_max;

    fin.close();
    fout.close();

    return 0;
}