Pagini recente » Cod sursa (job #2861508) | Cod sursa (job #2742588) | Cod sursa (job #737725) | Cod sursa (job #230201) | Cod sursa (job #1700996)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
const int maxn = 20;
int M[maxn][maxn];
int n, m;
long long ans;
inline void flip(int lin)
{
for(int i = 1; i <= m; i++)
M[lin][i] = M[lin][i] * (-1);
}
inline void flipv()
{
long long sum = 0;
for(int j = 1; j <= m; j++)
{
long long s = 0;
for(int i = 1; i <= n; i++)
s = s + M[i][j];
if(s < 0)
s = s * (-1);
sum += s;
}
ans = max(ans, sum);
}
int main()
{
in >> n >> m;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
in >> M[i][j];
for(int conf = 0; conf < (1 << m); conf++)
{
for(int i = 0; i < n; i++)
if(conf & (1 << i))
flip(i + 1);
flipv();
for(int i = 0; i < n; i++)
if(conf & (1 << i))
flip(i + 1);
}
out << ans << "\n";
return 0;
}