Pagini recente » Cod sursa (job #1277081) | Cod sursa (job #2617687) | Cod sursa (job #850630) | Cod sursa (job #2132658) | Cod sursa (job #1872946)
#include <bits/stdc++.h>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
int n, m, A[20][20], B[20][20], cur, ans = -1e9, cnt, k, aux;
void cop(){
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++) B[i][j] = A[i][j];
}
void flipcol(int col){
for(int i = 1; i <= n; i++) B[i][col] = -B[i][col];
}
void fliprow(int row){
for(int j = 1; j <= m; j++) B[row][j] = -B[row][j];
}
int getsum(int row){
int ans = 0;
for(int j = 1; j <= m; j++) ans += B[row][j];
return ans;
}
int getall(){
int ans = 0;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++) ans += B[i][j];
return ans;
}
int main(){
in >> n >> m;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++) in >> A[i][j];
for(int i = 1; i <= (1 << m); i++){
cop();
for(int j = 0; j <= m; j++){
if(i & (1 << j)){
flipcol(j+1);
}
}
for(int j = 1; j <= n; j++)
if(getsum(j) < 0) fliprow(j);
ans = max(ans, getall());
}
out << ans;
return 0;
}