Cod sursa(job #2221668)

Utilizator racheriunicolaechowchow racheriunicolae Data 15 iulie 2018 14:16:46
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>

using namespace std;
int n,m,a[20][20],lin[20],col[20],i,j,ans,ok;
int main()
{
    ifstream fin("flip.in");
    ofstream fout("flip.out");
    fin>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
    {
        fin>> a[i][j];
        lin[i] += a[i][j];
        col[j] += a[i][j];
        ans += a[i][j];
    }
    ok = 1;
    while(ok)
    {
        ok = 0;
        for(i=1;i<=n;i++)
        {
            if( ans - 2* lin[i] > ans)
            {
                lin[i] = -lin[i];
                ans += 2* lin[i];
                for(j=1;j<=m;j++)
                    col[j] -= 2* a[i][j];
                ok++;
            }
        }
        for(j=1;j<=m;j++)
        {
            if(ans - 2* col[j] > ans)
            {
                col[j] = -col[j];
                ans += 2*col[j];
                for(i=1;i<=n;i++)
                    lin[i] -= 2*a[i][j];
                ok++;
            }
        }

    }
    fout << ans <<"\n";
    return 0;
}