Pagini recente » Cod sursa (job #1463801) | Cod sursa (job #693236) | Cod sursa (job #2041969) | Cod sursa (job #2474167) | Cod sursa (job #1740387)
#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 ;
}