Pagini recente » Cod sursa (job #2917866) | Cod sursa (job #408894) | Cod sursa (job #1765570) | Cod sursa (job #409563) | Cod sursa (job #2636743)
#include <algorithm>
#include <fstream>
using namespace std;
using LL = long long;
using ULL = unsigned long long;
using LD = long double;
using pii = pair<int, int>;
using pll = pair<LL, LL>;
const int MAX_DIM = 16;
int N, M;
int max_sum;
int A[MAX_DIM][MAX_DIM], flipped[MAX_DIM];
int get_sum()
{
int res = 0;
for (int col = 0; col < M; ++col)
{
int sum_cur_col = 0;
for (int line = 0; line < N; ++line)
{
sum_cur_col += A[line][col] * flipped[line];
}
res += abs(sum_cur_col);
}
return res;
}
void solve(const int &cur_line)
{
if (cur_line == N)
{
max_sum = max(max_sum, get_sum());
}
else
{
flipped[cur_line] = 1;
solve(cur_line + 1);
flipped[cur_line] = -1;
solve(cur_line + 1);
}
}
int main()
{
ifstream cin("flip.in");
ofstream cout("flip.out");
cin >> N >> M;
for (int i = 0; i < N; ++i)
{
for (int j = 0; j < M; ++j)
{
cin >> A[i][j];
}
}
solve(0);
cout << max_sum;
}