Cod sursa(job #1740387)

Utilizator jurjstyleJurj Andrei jurjstyle Data 11 august 2016 15:41:54
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>

using namespace std ;

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

int n , m , a[18][18] ;
int linii[18] , coloane[18] , smax = -1e9 ;

void calc_col ()
{
 for ( int i = 1 ; i <= n ; ++i )
    if ( linii[i] )
        for ( int j = 1 ; j <= m ; ++j )
            a[i][j] *= -1 ;
 int result = 0 ;
 for ( int j = 1 ; j <= m ; ++j )
    {
     int s = 0 ;
     for ( int i = 1 ; i <= n ; ++i )
        s += a[i][j] ;
     if ( s < 0 )
        s *= (-1) ;
     result += s ;
    }
 if ( result > smax )
    smax = result ;
 for ( int i = 1 ; i <= n ; ++i )
    if ( linii[i] )
        for ( int j = 1 ; j <= m ; ++j )
            a[i][j] *= -1 ;
}

void back1 ( int k )
{
 if ( k == n + 1 )
    calc_col () ;
 else
    {
     back1 ( k + 1 ) ;
     linii[k] = 1 ;
     back1 ( k + 1 ) ;
     linii[k] = 0 ;
    }
}



int main ()
{
 f >> n >> m ;
 for ( int i = 1 ; i <= n ; ++i )
    for ( int j = 1 ; j <= m ; ++j )
        f >> a[i][j] ;
 back1 ( 1 ) ;
 g << smax ;

}