Cod sursa(job #1007437)

Utilizator Athena99Anghel Anca Athena99 Data 8 octombrie 2013 22:00:19
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>

using namespace std;

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

const int nmax=16;

int n, m;
int a[nmax+1][nmax+1];

int sol;
bool u[nmax+1];

void back( int x )
{
    if (x==n+1) {
        int s= 0;
        for ( int j= 1; j<=m; ++j ) {
            int s_aux= 0;

            for ( int i= 1; i<=n; ++i ) {
                if ( u[i]==0 ) {
                    s_aux+= a[i][j];
                } else {
                    s_aux-= a[i][j];
                }
            }

            if ( s_aux>0 ) {
                s+= s_aux;
            } else {
                s-= s_aux;
            }

        }

        if ( s>sol ) {
            sol= s;
        }
    } else {
        for ( int i= 0; i<2; ++i ) {
            u[x]= i;
            back(x+1);
        }
    }
}

int main(  )
{
    fin>>n>>m;

    for ( int i= 1; i<=n; ++i ) {
        for ( int j= 1; j<=m; ++j ) {
            fin>>a[i][j];
        }
    }

    back(1);
    
    fout<<sol;

    return 0;
}