Cod sursa(job #1169163)

Utilizator Aavatar36Russu Vadim Aavatar36 Data 10 aprilie 2014 16:56:23
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <fstream>
using namespace std;

int a[20][20], b[20][20], n, m, maxsum;

int suma()
{
    int s;
    s = 0;
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < m; ++j)
        {
            s += a[i][j];
        }
    }
    return s;
}

int flipcol(int c)
{
    for (int i = 0; i < n; ++i)
    {
        a[i][c] *= -1 ;
    }
    return 0;
}

int fliplin(int c)
{
    for (int i = 0; i < m; ++i)
    {
        a[c][i] *= -1;
    }
    return 0;
}

int main()
{
    ifstream fin("flip.in");
    ofstream fout("flip.out");
    fin >> n >> m;
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < m; ++j)
        {
            fin >> a[i][j];
        }
    }
    int temp;
    maxsum = temp = 0;
    //  flipcol(1);
    //fliplin(2);

    for (int i = 0; i < 1 << n; ++i)
    {
        for (int j = 0; j <1 << m; ++j)
        {
            memcpy(b, a, sizeof(a));
            for (int z = 0; z < n ; ++z)
            {
                if (i & (1 << z)) flipcol(z);
            }
            for (int z = 0; z < m ; ++z)
            {
                if (j & (1 << z)) fliplin(z);
            }
            temp = suma();
            if (temp > maxsum)maxsum = temp;
        }
    }
    fout << maxsum;
    return 0;
}