Cod sursa(job #1962788)

Utilizator Dragos123Tatar Dragos Vlad Dragos123 Data 12 aprilie 2017 08:35:16
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.97 kb
//flip.cpp
#include <fstream>
using namespace std;

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

const int Inf = 0x3f3f3f3f;
int n, m, a[17][17], s, minim1 = Inf, minim2 = Inf, pmin1, pmin2;

int main ()
{
    fin >> n >> m;
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            fin >> a[i][j];
    for (int i = 1; i <= n; ++i)
        for (int j = 1; j <= m; ++j)
            a[0][j] += a[i][j];
    for (int j = 1; j <= m; ++j)
        for (int i = 1; i <= n; ++i)
            a[i][0] += a[i][j];
    for (int j = 1; j <= m; ++j)
        if (a[0][j] < minim1)
            minim1 = a[0][j], pmin1 = j;
    for (int i = 1; i <= n; ++i)
        if (a[i][0] < minim2)
            minim2 = a[i][0], pmin2 = i;
    if (minim1 < minim2)
    {
        for (int i = 1; i <= n; ++i)
            a[i][0] = 0;
        for (int i = 1; i <= n; ++i)
            a[i][pmin1] *= -1;
        for (int j = 1; j <= m; ++j)
            for (int i = 1; i <= n; ++i)
                a[i][0] += a[i][j];
        minim2 = Inf;
        for (int i = 1; i <= n; ++i)
            if (a[i][0] < minim2)
                minim2 = a[i][0], pmin2 = i;
        for (int j = 1; j <= m; ++j)
            a[pmin2][j] *= -1;
        for (int i = 1; i <= n; ++i)
            for (int j = 1; j <= m; ++j)
                s += a[i][j];
    }
    else
    {
        for (int j = 1; j <= m; ++j)
            a[0][j] = 0;
        for (int j = 1; j <= m; ++j)
            a[pmin2][j] *= -1;
        for (int i = 1; i <= n; ++i)
            for (int j = 1; j <= m; ++j)
                a[0][j] += a[i][j];
        minim1 = Inf;
        for (int j = 1; j <= m; ++j)
            if (a[0][j] < minim1)
                minim1 = a[0][j], pmin1 = j;
        for (int i = 1; i <= n; ++i)
            a[i][pmin1] *= -1;
        for (int i = 1; i <= n; ++i)
            for (int j = 1; j <= m; ++j)
                s += a[i][j];
    }
    fout << s;
    return 0;
}