Pagini recente » Cod sursa (job #2799449) | Cod sursa (job #2301467) | Cod sursa (job #220358) | Cod sursa (job #217798) | Cod sursa (job #2686307)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n, m, rez, dim, mt[20][20], v2[20][20];
void solve(vector <int> v) {
for (int p = 1; p <= dim; ++p) {
int sum = 0;
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j) {
int nr = mt[i][j];
if (v2[p][i] == 1)
nr = -nr;
if (v[j] == 1)
nr = -nr;
sum += nr;
}
rez = max(rez, sum);
}
return;
}
void back(int pos, vector <int> v) {
if (pos == m) {
solve(v);
return;
}
back(pos + 1, v);
v[pos + 1] = 1;
back(pos + 1, v);
return;
}
void back2(int pos, vector <int> v) {
if (pos == n) {
++dim;
for (int i = 1; i <= n; ++i)
v2[dim][i] = v[i];
return;
}
back2(pos + 1, v);
v[pos + 1] = 1;
back2(pos + 1, v);
return;
}
int main() {
fin >> n >> m;
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
fin >> mt[i][j];
vector <int> v(20);
back2(0, v);
back(0, v);
fout << rez;
return 0;
}