Cod sursa(job #2640499)

Utilizator CRaresCroicia Rares CRares Data 6 august 2020 16:50:49
Problema Jocul Flip Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;

const int nmax = 16, mmax = 16;
int mat[nmax+1][mmax+1], n, m;

void flipColoana(int mat[nmax+1][mmax+1], int col){
    for(int i = 0; i < n; i++)
        mat[i][col] *= -1;
}

void flipLinie(int mat[nmax+1][mmax+1], int row){
    for(int i = 0; i < m; i++)
        mat[row][i] *= -1;
}

bool checkColoana(int mat[nmax+1][mmax+1], int col){
    int sum = 0;
    for(int i = 0; i < n; i++)
        sum += mat[i][col];
    return (sum < 0);
}

bool checkLinie(int mat[nmax+1][mmax+1], int row){
    int sum = 0;
    for(int i = 0; i < m; i++)
        sum += mat[row][i];
    return (sum < 0);
}

int main() {
    freopen("flip.in", "r", stdin);
    freopen("flip.out", "w", stdout);
    cin >> n >> m;
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
            cin >> mat[i][j];

    for(int i = 0; i < n; i++)
        if(checkLinie(mat, i))
            flipLinie(mat, i);

    for(int i = 0; i < m; i++)
        if(checkColoana(mat, i))
            flipColoana(mat, i);

    int sum = 0;
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
            sum += mat[i][j];

    cout << sum;
}