Pagini recente » Cod sursa (job #3221519) | Cod sursa (job #1659093) | Cod sursa (job #1107436) | Cod sursa (job #882625) | Cod sursa (job #2654766)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <queue>
#include <vector>
#include <stack>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
int n, m, mat[20][20], maxi;
void flipLine(int l) {
for (int i = 0; i < m; i++)mat[l][i] *= -1;
}
void flipColumn(int c) {
for (int i = 0; i < n; i++)mat[i][c] *= -1;
}
void sol() {
int sum = 0, ps = 0;
for (int i = 0; i < n; i++) {
ps = 0;
for (int j = 0; j < m; j++) {
ps += mat[i][j];
}
if (ps > 0) sum += ps;
else sum -= ps;
}
if (sum > maxi) maxi = sum;
}
void back(int l) {
if (l == n)sol();
else {
back(l + 1);
flipLine(l);
back(l + 1);
flipColumn(l);
}
}
int main() {
ios::sync_with_stdio(false);
in.tie(NULL), out.tie(NULL);
in >> n >> m;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
in >> mat[i][j];
}
}
back(0);
out << maxi;
return 0;
}