Cod sursa(job #439155)

Utilizator SpiderManSimoiu Robert SpiderMan Data 11 aprilie 2010 13:34:52
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
using namespace std;

#define oo 0x3f3f3f3

int flip[17][17];
int M, N;
int MAX = -oo;

ifstream f("flip.in");
ofstream g("flip.out");

inline void LN(const int l)
{
    for (int i = 0; i < M; i++)
        flip[l][i] *= -1;
}

inline void CL(const int c)
{
    for (int i = 0; i < N; i++)
        flip[i][c] *= -1;
}

void read()
{
    f >> N >> M;
    for (int i = 0; i < N; i++)
        for (int j = 0; j < M; j++)
            f >> flip[i][j];
}

void solve()
{
    int suma = 0,  sui = 0;
    for (int i = 0, sui = 0; i < M; i++, sui = 0)
    {
        for (int j = 0; j < N; j++)
            sui += flip[j][i];

        suma += abs(sui);
    }

    if (suma > MAX)
        MAX = suma;
}

void back(const int l)
{
    if (l == N) solve() ;
    else
    {

        back(l + 1);
        CL(l);
        back(l + 1);
        LN(l);
    }
}

void write()
{
    g << MAX;
}

int main()
{
    read();
    back(0);
    write();
    return 0;
}