Pagini recente » Cod sursa (job #352079) | Cod sursa (job #1682297) | Cod sursa (job #829944) | Cod sursa (job #2752691) | Cod sursa (job #2684619)
#include <fstream>
using namespace std;
ifstream fin( "flip.in" );
ofstream fout( "flip.out" );
const int NMAX = 16;
int mat[NMAX + 2][NMAX + 2];
int val[NMAX + 2][NMAX + 2];
int values[] = {-1, 1};
int v[NMAX + 2];
int n, m, maxx;
int solve(){
int i, j, sum, scol;
for( i = 1; i <= n; ++i )
for( j = 1; j <= m; ++j )
val[i][j] = values[v[i]] * mat[i][j];
sum = 0;
for( i = 1; i <= m; ++i ){
scol = 0;
for( j = 1; j <= n; ++j )
scol += val[j][i];
sum = sum + max(-scol, scol);
}
return sum;
}
void bkt( int poz ){
if( poz == n + 1 ){
maxx = max(solve(), maxx);
return ;
}
for( int i = 0; i <= 1; ++i ){
v[poz] = i;
bkt(poz + 1);
}
}
int main() {
int i, j;
fin >> n >> m;
for( i = 1; i <= n; ++i )
for( j = 1; j <= m; ++j )
fin >> mat[i][j];
bkt(1);
fout << maxx;
return 0;
}