Cod sursa(job #2685055)

Utilizator Fantastic_Mantudor voicu Fantastic_Man Data 15 decembrie 2020 20:14:55
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
using namespace std;
const int NMAX = 16;
int a[NMAX + 1][NMAX + 1], flip[NMAX + 1], n, m, maxy = -1000000000;
int Flip() {
    int s = 0, sum;
    for ( int j = 1; j <= m; j++ ) {
        sum = 0;
        for ( int i = 1; i <= n; i++ )
            if ( flip[i] != 0 )
                sum -= a[i][j];
            else
                sum += a[i][j];
        s += max ( sum, -sum );
    }
    return s;
}
ifstream fin ( "flip.in" );
ofstream fout ( "flip.out" );
int main (){
    fin >> n >> m;
    for ( int i = 1; i <= n; i++ )
        for ( int j = 1; j <= m; j++ )
            fin >> a[i][j];
    for ( int i = 1; i< ( 1 << n ); i++ ) {
        for ( int j = 0; ( 1 <<j ) <= i; j++ )
            if ( ( ( 1 << j ) & i ) != 0 )
                flip[j + 1] = 1;
            else
                flip[j + 1] = 0;
        maxy = max ( maxy, Flip() );
    }
    fout << maxy;
    return 0;
}