Cod sursa(job #543335)
#include <stdio.h>
#include <string.h>
int x[2]={-1,1};
int max,i,j,N,M;
int A[20][20],sol[20];
inline void verif()
{
int i,s=0;
int S[20];
memset(S,0,sizeof(S));
for(i=1;i<=N;i++)
for(j=1;j<=M;j++)
S[j]+=A[i][j]*sol[i];
for(i=1;i<=M;i++)
{
if(S[i]<0) S[i]*=-1;
s+=S[i];
}
if(max<s) max=s;
}
inline void back(int k)
{
int i;
if(k>N) verif();
else
for(i=0;i<=1;i++)
{
sol[k]=x[i];
back(k+1);
}
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d%d",&N,&M);
for(i=1;i<=N;i++)
for(j=1;j<=M;j++)
scanf("%d",&A[i][j]);
memset(sol,0,sizeof(sol));
max=0;
back(1);
printf("%d\n",max);
return 0;
}