Cod sursa(job #1731437)

Utilizator vlasiuflaviusVlasiu Flavius vlasiuflavius Data 18 iulie 2016 23:04:20
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>
using namespace std;
ofstream fout("flip.out");
ifstream fin("flip.in");
int v[ 20 ][ 20 ] , crt[ 20 ][ 20 ] , pt[ 20 ] , suma , maxim , n , m , curent , aux , sumacrt , i , j ;
int main()
{
    fin>>n>>m;
    for( i = 1 ; i <= n ; i++ )
        for( j = 1 ; j <= m ; j++ )
            fin>>v[ i ][ j ];
    curent = 1;
    while( curent <= ( 1 << n ) )
    {
        suma = 0;
        pt[ n ]++;
        aux = n;
        while( pt[ aux ] == 2 && aux )
        {
            pt[ aux ] = 0;
            pt[ --aux ]++;
        }
        for( i = 1 ; i <= n ; i++ )
        {
            for( j = 1 ; j <= m ; j++ )
            {
                if( pt[ i ] == 1 ) crt[ i ][ j ] = v[ i ][ j ];
                else crt[ i ][ j ] = - v[ i ][ j ];
            }
        }
        for( i = 1 ; i <= m ; i++ )
        {
            sumacrt = 0;
            for( j = 1 ; j <= n ; j++ ) sumacrt += crt[ j ][ i ];
            suma += max( sumacrt , - sumacrt );
        }
        maxim = max( suma , maxim );
        curent++;
    }
    fout<<maxim;
}