Pagini recente » Cod sursa (job #1708937) | Cod sursa (job #1709508) | Cod sursa (job #3244680) | Cod sursa (job #1577065) | Cod sursa (job #1775496)
#include <bits/stdc++.h>
using namespace std;
#define inf 1e9;
int board[20][20];
int line_switch[20];
int n, m, i, j;
int _max = -inf;
void select_cols()
{
int sum = 0, current = 0, i, j;
for (j = 0; j < m; ++j) {
current = 0;
for (i = 0; i < n; ++i)
current += (line_switch[i] * board[i][j]);
if (current < 0)
current *= (-1);
sum += current;
}
if (sum > _max)
_max = sum;
}
void backtr(int pos)
{
if (pos == n) {
select_cols();
return;
}
/// +
backtr(pos + 1);
/// -
line_switch[pos] = -1;
backtr(pos + 1);
line_switch[pos] = 1;
}
int main()
{
ifstream in("flip.in");
ofstream out("flip.out");
in >> n >> m;
for (i = 0; i < n; ++i) {
line_switch[i] = 1;
for (j = 0; j < m; ++j)
in >> board[i][j];
}
backtr(0);
out << _max << '\n';
in.close();
out.close();
return 0;
}