Pagini recente » Cod sursa (job #1335001) | Cod sursa (job #3178832) | Cod sursa (job #1712548) | Cod sursa (job #3132183) | Cod sursa (job #1575611)
#include <cstdio>
#include <bitset>
using namespace std;
int a[20][20] , m , n , i , j , pas , suma , S , maxim ;
bitset <20> rez ;
void bkt( int pas )
{
if ( pas == n + 1 )
{
S = 0 ;
for ( int j = 1 ; j <= m ; j++ )
{
suma = 0 ;
for ( int i = 1 ; i <= n ; i++ )
{
if ( rez[i] == 1 )
{
suma += a[i][j]*(-1) ;
}
else
{
suma += a[i][j] ;
}
}
if ( suma < 0 )
suma *= -1 ;
S += suma ;
}
if ( maxim < S ) maxim = S ;
}
else
{
rez[pas] = 0 ;
bkt(pas+1) ;
rez[pas] = 1 ;
bkt(pas+1) ;
}
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d %d",&n,&m);
for ( int i = 1 ; i <= n ; i++ )
{
for ( int j = 1 ; j <= m ; j++ )
{
scanf("%d ",&a[i][j]);
}
}
bkt(1) ;
printf("%d ",maxim) ;
}