Pagini recente » Cod sursa (job #2506187) | Cod sursa (job #1100202) | Cod sursa (job #3193283) | Cod sursa (job #623659) | Cod sursa (job #2229707)
#include <bits/stdc++.h>
using namespace std;
int n, m, ans, a[20][20], b[20][20];
void copi(){
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++) b[i][j] = a[i][j];
}
void flipc(int col){
for (int i=1; i<=n; i++) b[i][col] = -b[i][col];
}
void flipr(int row){
for (int j=1; j<=m; j++) b[row][j] = -b[row][j];
}
int getr(int row){
int rs = 0;
for (int j=1; j<=m; j++) rs += b[row][j];
return rs;
}
int get(){
int rs = 0;
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++) rs += b[i][j];
return rs;
}
int main(){
ifstream cin ("flip.in");
ofstream cout ("flip.out");
cin >> n >> m;
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++) cin >> a[i][j];
for (int i=1; i < (1<<m); i++){
copi();
for (int j=0; j<m; j++){
if ((1<<j) & i) flipc(j+1);
}
for (int j=1; j<=n; j++){
if (getr(j) < 0) flipr(j);
}
ans = max(ans, get());
}
return cout << ans, 0;
}