Pagini recente » Cod sursa (job #1871871) | Cod sursa (job #1090203) | Cod sursa (job #1075371) | Cod sursa (job #1075185) | Cod sursa (job #2431160)
#include <bits/stdc++.h>
using namespace std;
const int N = 16;
int n, m, mt[N][N];
int sum[N];
void read()
{
cin >> n >> m;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cin >> mt[i][j];
sum[i] += mt[i][j];
}
}
}
int solve()
{
int best = 0;
for (int mask = 0; mask < (1 << m); mask++)
{
for (int bit = 0; (1 << bit) <= mask; bit++)
{
if (mask & (1 << bit))
{
for (int i = 0; i < n; i++)
{
/// mt[i][bit] -> -mt[i][bit]
sum[i] -= 2 * mt[i][bit];
}
}
}
int cur = 0;
for (int i = 0; i < n; i++)
{
cur += abs(sum[i]);
}
best = max(best, cur);
for (int bit = 0; (1 << bit) <= mask; bit++)
{
if (mask & (1 << bit))
{
for (int i = 0; i < n; i++)
{
sum[i] += 2 * mt[i][bit];
}
}
}
}
return best;
}
int main()
{
freopen ("flip.in", "r", stdin);
freopen ("flip.out", "w", stdout);
read();
int res = solve();
cout << res << "\n";
}