Cod sursa(job #3322479)

Utilizator crina2120Arnautu Cristina-Crina crina2120 Data 14 noiembrie 2025 12:45:36
Problema Jocul Flip Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.68 kb
#include <bits/stdc++.h>
using namespace std;

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

int n, m, a[17][17], b[17][17], sp, sm, s1, s2;

int main()
{
    int i, j, x;
    fin >> n >> m;
    for (i = 1; i <= n; i++)
        for (j = 1; j <= m; j++)
        {
            fin >> x;
            a[i][j] = b[i][j] = x;
        }
    for (i = 1; i <= n; i++)
    {
        sp = sm = 0;
        for (j = 1; j <= m; j++)
            if (a[i][j] >= 0) sp += a[i][j];
            else sm += a[i][j];
        sm = abs(sm);
        if (sm > sp)
        {
            for (j = 1; j <= m; j++)
                a[i][j] *= (-1);
        }
    }
    for (j = 1; j <= m; j++)
    {
        sp = sm = 0;
        for (i = 1; i <= n; i++)
            if (a[i][j] >= 0) sp += a[i][j];
            else sm += a[i][j];
        sm = abs(sm);
        if (sm > sp)
        {
            //for (i = 1; i <= n; i++)
            //    a[i][j] *= (-1);
            s1 += sm - sp;
        }
        else s1 += sp - sm;
    }
    for (j = 1; j <= m; j++)
    {
        sp = sm = 0;
        for (i = 1; i <= n; i++)
            if (b[i][j] >= 0) sp += b[i][j];
            else sm += b[i][j];
        sm = abs(sm);
        if (sm > sp)
        {
            for (i = 1; i <= n; i++)
                b[i][j] *= (-1);
        }
    }
    for (i = 1; i <= n; i++)
    {
        sp = sm = 0;
        for (j = 1; j <= m; j++)
            if (b[i][j] >= 0) sp += b[i][j];
            else sm += b[i][j];
        sm = abs(sm);
        if (sm > sp)
        {
            s2 += sm - sp;
        }
        else s2 += sp - sm;
    }
    fout << max(s1, s2) << "\n";
    return 0;
}