Pagini recente » Cod sursa (job #2206746) | Cod sursa (job #816914) | Cod sursa (job #542779) | Cod sursa (job #1918829) | Cod sursa (job #1804891)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
const int maxn = 25;
int M[maxn][maxn];
int n, m;
long long rasp;
inline void flip(int lin)
{
for(int i = 1; i <= m; i++)
M[lin][i] = M[lin][i] * (-1);
}
inline int mod(int s)
{
if(s >= 0)
return s;
return -s;
}
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];
s = mod(s);
sum += s;
}
rasp = max(rasp, 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 << n); 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 << rasp << "\n";
return 0;
}