Cod sursa(job #564181)

Utilizator antonioteoZait Teodor Antonio antonioteo Data 26 martie 2011 20:46:18
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <cstdio>
using namespace std;

#define oo 0x3f3f3f3
#define hg 8192

int flip[17][17];
int M, N, poz;
int MAX = -oo;
char ch[hg];

inline void LN(const int l)
{
    for (int i = 0; i < M; i++)
        flip[l][i] = -flip[l][i];
}
void solve()
{
    int suma = 0; int sumi = 0;
    for (int i = 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 k)
{
    if (k == N) solve() ;
    else
        for (int i = 1; i <= 2; i++)
            back (k + 1), LN(k);
}
int main()
{
    freopen("flip.in","r",stdin);
    freopen("flip.out","w",stdout);
	scanf ("%d%d", &N, &M);
    for (int i = 0; i < N; i++)
        for (int j = 0; j < M; j++)
            scanf ("%d", &flip[ i ][ j ]);
	back(0);
	printf("%d\n",MAX);
    return 0;
}