Pagini recente » Cod sursa (job #176276) | Cod sursa (job #965889) | Cod sursa (job #2340690) | Cod sursa (job #2429162) | Cod sursa (job #1511078)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
int n, m, smax, a[17][17], sol[17];
void solutie( int p )
{
int i, j;
int s = 0, su = 0;
for ( i = 1; i <= n; i++ )
{
for ( j = 1; j <= m; j++ )
if ( sol[i] == 1 )
a[i][j] = -a[i][j];
}
for ( j = 1; j <= m; j++ )
{
su = 0;
for ( int i = 1; i <= n; i++ )
su+=a[i][j];
if ( su < 0 )
s-=su;
else s+=su;
}
if ( s > smax )
smax = s;
for ( i = 1; i <= n; i++ )
{
for ( j = 1; j <= m; j++ )
if ( sol[i] == 1 )
a[i][j] = -a[i][j];
}
}
void bkt( int p )
{
if ( p == n+1 )
solutie(p);
else
{
sol[p] = 0;
bkt(p+1);
sol[p] = 1;
bkt(p+1);
}
}
int main()
{
in >> n >> m;
for ( int i = 1; i <= n; i++ )
for ( int j = 1; j <= m; j++ )
{
in >> a[i][j];
smax+=a[i][j];
}
bkt(1);
out << smax;
cout << smax;
return 0;
}