Pagini recente » Cod sursa (job #2463825) | Cod sursa (job #1084268) | Cod sursa (job #175683) | Cod sursa (job #1522776) | Cod sursa (job #2242142)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f ("flip.in");
ofstream g ("flip.out");
int v [17][17] , v2 [17][17] , n , m;
inline void fliprow (int row){
int i;
for(i = 1 ; i <= m ; ++ i)
v2 [row][i] = 0 - v2 [row][i];
}
inline int bestop (){
int i , j , s = 0;
for(i = 1 ; i <= m ; ++ i){
int S = 0 ;
for(j = 1 ; j <= n ; ++ j)
S += v2 [j][i];
if (S > 0)
s += S;
else
s += (0 - S);
}
return s;
}
int main()
{
int i , j , best = -1000000000;
f >> n >> m;
for(i = 1 ; i <= n ; ++ i)
for(j = 1 ; j <= m ; ++ j)
f >> v [i][j];
for(i = 1 ; i < (1 << (n + 1)) ; ++ i){
for(int o = 1 ; o <= n ; ++ o)
copy (v [o] + 1 , v [o] + m + 1 , v2 [o] + 1);
for(j = 0; (1 << j) <= i ; j ++)
if ((1 << j) & i)
fliprow (j + 1);
best = max (best , bestop ());
}
g << best;
return 0;
}