Cod sursa(job #1369843)

Utilizator laurageorgescuLaura Georgescu laurageorgescu Data 3 martie 2015 11:45:13
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include<fstream>

using namespace std;

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

const int inf = 1 << 30;
const int nmax = 16;
int n, m, ans;
int v[ nmax + 1 ][ nmax + 1 ];
int l[ nmax + 1 ];

void bck( int lin ) {
    if ( lin == n + 1 ) {
        int sum = 0;
        for( int j = 1; j <= m; ++ j ) {
            int x = 0;
            for( int i = 1; i <= n; ++ i ) {
                x += v[ i ][ j ] * l[ i ];
            }
            if ( x < 0 ) {
                sum += -x;
            } else {
                sum += x;
            }
        }
        if ( sum > ans ) {
            ans = sum;
        }
        return ;
    }
    bck( lin + 1 );
    l[ lin ] = -1;
    bck( lin + 1 );
    l[ lin ] = 1;
}
int main() {
    fin >> n >> m;
    for( int i = 1; i <= n; ++ i ) {
        l[ i ] = 1;
        for( int j = 1; j <= m; ++ j ) {
            fin >> v[ i ][ j ];
        }
    }
    ans = -inf;
    bck( 1 );
    fout << ans << "\n";
    fin.close();
    fout.close();
    return 0;
}