Pagini recente » Cod sursa (job #715175) | Cod sursa (job #2583009) | Cod sursa (job #2236324) | Cod sursa (job #691349) | Cod sursa (job #3242944)
#include <iostream>
#include <fstream>
#include <vector>
#include <climits>
using namespace std;
int main() {
ifstream fin("flip.in");
ofstream fout("flip.out");
int N, M;
fin >> N >> M;
vector<vector<int>> A(N, vector<int>(M));
for (int i = 0; i < N; ++i) {
for (int j = 0; j < M; ++j) {
fin >> A[i][j];
}
}
long long max_total_sum = LLONG_MIN;
for (int row_flip_mask = 0; row_flip_mask < (1 << N); ++row_flip_mask) {
vector<int> row_sign(N, 1);
for (int i = 0; i < N; ++i) {
if (row_flip_mask & (1 << i)) {
row_sign[i] = -1;
}
}
long long total_sum = 0;
for (int j = 0; j < M; ++j) {
long long sum_col = 0;
for (int i = 0; i < N; ++i) {
sum_col += row_sign[i] * A[i][j];
}
if (sum_col < 0) {
sum_col = -sum_col;
}
total_sum += sum_col;
}
if (total_sum > max_total_sum) {
max_total_sum = total_sum;
}
}
fout << max_total_sum << endl;
fin.close();
fout.close();
return 0;
}