Cod sursa(job #439173)

Utilizator SpiderManSimoiu Robert SpiderMan Data 11 aprilie 2010 13:44:20
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 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;
}

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,  sumi = 0;

    for (int i = 0, sumi = 0; i < M; i++, sumi = 0)
    {
        for (int j = 0; j < N; j++)
            sumi += flip[j][i];

        suma += sumi > 0 ? sumi : -sumi;
    }

    if (suma > MAX)
        MAX = suma;
}

void back(const int l)
{
    if (l == N) solve() ;
    else
        for (int i = 1; i <= 2; i++)
            back(l + 1), LN(l);

}

void write()
{
    g << MAX;
}

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