Cod sursa(job #2674930)

Utilizator TarceaIonutTarcea Tudor Ionut TarceaIonut Data 20 noiembrie 2020 19:35:44
Problema Jocul Flip Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin ("flip.in");
ofstream fout ("flip.out");
int a[20][20];
int n , m;
int s_col[20] , s_lin[20];
void read()
{
    fin >> n >> m;
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<m;j++)
        {
            fin >> a[i][j];
            s_lin[i] += a[i][j];
            s_col[j] += a[i][j];
        }
    }
}
void search_mod()
{
    bool ok = false;
    for (int i=0;i<n;i++)
    {
        if (s_lin[i] < 0)
        {
            ok = true;
            s_lin[i] *= -1;
            for (int j=0;j<m;j++)
            {
                a[i][j] *= -1;
                s_col[j] += 2 * a[i][j];
            }
        }
    }
    for (int j=0;j<m;j++)
    {
        if (s_col[j] < 0)
        {
            ok = true;
            s_col[j] *= -1;
            for (int i=0;i<n;i++)
            {
                a[i][j] *= -1;
                s_lin[i] += 2 * a[i][j];
            }
        }
    }
    if (ok)
        search_mod();
}
int suma_totala()
{
    int s=0;
    for (int i=0;i<n;i++)
    {
        s += s_lin[i];
    }
    return s;
}
int main()
{
    read();
    search_mod();
    fout << suma_totala();
    return 0;
}