Pagini recente » Cod sursa (job #2539553) | Cod sursa (job #2784407) | Cod sursa (job #1751923) | Cod sursa (job #704287) | Cod sursa (job #2825180)
#include <iostream>
#include <fstream>
#define INF 0x3f3f3f3f
using namespace std;
ifstream fin ("flip.in");
ofstream fout ("flip.out");
int main(){
int N , M, a[17][17], sLin[17];
fin >> N >> M ;
int sum = 0;
for (int i = 0 ; i < N ; ++i){
sLin[i] = 0;
for (int j = 0 ; j < M ; ++j){
fin >> a[i][j];
sLin[i] += a[i][j];
}
sum += sLin[i];
}
int ans = -INF, active[17];
for (int mask = 0; mask < (1 << N); ++mask) {
int newSum = sum, n = 0;
for (int i = 0; (1 << i) <= mask; ++i) {
if (mask & (1 << i)) {
newSum -= sLin[i];
newSum += (-1) * sLin[i];
active[n++] = i;
}
}
for (int j = 0; j < M; ++j) {
int sum2 = newSum;
for (int i = 0; i < N; ++i) {
if (mask & (1 << i)) {
sum2 -= (-1) * a[i][j];
sum2 += a[i][j];
} else {
sum2 -= a[i][j];
sum2 += (-1) * a[i][j];
}
}
if (newSum < sum2) {
newSum = sum2;
}
}
ans = max(ans, newSum);
}
fout << ans << '\n';
return 0;
}