Cod sursa(job #2978412)

Utilizator Adrian_MosnegutuMosnegutu Adrian - Ioan Adrian_Mosnegutu Data 13 februarie 2023 18:48:40
Problema Jocul Flip Scor 20
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul II Marime 1.08 kb
#include <bits/stdc++.h>
using namespace std;

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

int n, m, s, arr[16][16];

int sum_lin(int lin)
{
    int sum = 0;
    for (int j = 0; j < m; j ++)
        sum += arr[lin][j];
    return sum;
}

int sum_col(int col)
{
    int sum = 0;
    for (int i = 0; i < n; i ++)
        sum += arr[i][col];
    return sum;
}

int sum_mat()
{
    int sum = 0;
    for (int i = 0; i < n; i ++)
        sum += sum_lin(i);
    return sum;
}

void flip_lin(int lin)
{
    for (int j = 0; j < m; j ++)
        arr[lin][j] *= -1;
}

void flip_col(int col)
{
    for (int i = 0; i < n; i ++)
        arr[i][col] *= -1;
}

int main()
{
    fin >> n >> m;

    for (int i = 0; i < n; i ++)
        for (int j = 0; j < m; j ++)
            fin >> arr[i][j];

    for (int i = 0; i < n; i ++)
        if (sum_lin(i) < 0)
            flip_lin(i);

    for (int j = 0; j < m; j ++)
        if (sum_col(j) < 0)
            flip_col(j);

    fout << sum_mat();

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

    return 0;
}