Pagini recente » Cod sursa (job #540276) | Cod sursa (job #319597) | Cod sursa (job #560491) | Cod sursa (job #2779276) | Cod sursa (job #3158326)
#include <fstream>
using namespace std;
const int NMAX = 16;
int v[NMAX + 1][NMAX + 1];
int mat[NMAX + 1][NMAX + 1];
bool viz[NMAX + 1][NMAX + 1];
int main()
{
ifstream cin("flip.in");
ofstream cout("flip.out");
int n, m, i, j, k;
cin >> n >> m;
int ans = 0;
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
{
cin >> v[i][j];
ans += v[i][j];
}
int msk = (1 << n);
for (i = 0; i < msk; i++)
{
for (j = 0; j < n; j++)
if (i & (1 << j))
{
for (k = 0; k < m; k++)
{
mat[j][k] = -v[j][k];
viz[j][k] = 1;
}
}
for (j = 0; j < n; j++)
for (k = 0; k < m; k++)
if (viz[j][k] == 0)
mat[j][k] = v[j][k];
int sum = 0;
for (j = 0; j < m; j++)
{
int s2 = 0;
for (k = 0; k < n; k++)
{
s2 += mat[k][j];
viz[k][j] = 0;
}
sum += max(s2, -s2);
}
ans = max(ans, sum);
}
cout << ans;
}