Pagini recente » Cod sursa (job #833185) | Cod sursa (job #111223) | Cod sursa (job #2390663) | Cod sursa (job #1689188) | Cod sursa (job #2825063)
#include <bits/stdc++.h>
using namespace std;
int n,m;
int ans=-17*17*int(1e6);
int A[17][17],B[17]={0};
static inline void change(int row){
for(int j=1;j<=m;++j)
A[row][j]*=-1,B[j]+=2*A[row][j];
}
static inline void update_max(){
int curr_sum=0;
for(int i=1;i<=m;++i)
curr_sum+=(B[i]>=0?B[i]:-B[i]);
ans=max(ans,curr_sum);
}
static inline void back_tr(int curr_row=1){
if(curr_row==n){
update_max();
return;
}
back_tr(curr_row+1);
change(curr_row);
back_tr(curr_row+1);
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d %d ",&n,&m);
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
scanf("%d ",&A[i][j]),B[j]+=A[i][j];
back_tr();
printf("%d ",ans);
}