Cod sursa(job #1267155)

Utilizator gedicaAlpaca Gedit gedica Data 19 noiembrie 2014 16:50:05
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>

using namespace std;

const int NMAX= 16;

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

int a[NMAX+1][NMAX+1];

int N, M, ans;

int MOD( int x )
{
    if ( x>0 ) return x;
    else return -x;
}

void back_tracking( int x )
{
    int s, fin= 0;
    if( x==N+1 )
    {
        for( int j= 1; j<=M; ++j )
        {
            s= 0;
            for( int i= 1; i<=N; ++i )
            {
                s+=a[i][j];
            }
            s= MOD(s);
            fin+= MOD(s);
        }
        if( fin>ans ) ans= fin;
        return;
    }
    back_tracking(x+1);
    for( int i= 1; i<=M; ++i )
    {
        a[x][i]= -a[x][i];
    }
    back_tracking(x+1);
    for( int i= 1; i<=M; ++i )
    {
        a[x][i]= -a[x][i];
    }
}

int main(  )
{
    in >> N >> M;
    for( int i= 1; i<=N; ++i )
    {
        for( int j= 1; j<=M; ++j )
        {
            in >> a[i][j];
        }
    }
    back_tracking(1);
    out << ans << '\n';
    return 0;
}