Cod sursa(job #127058)
#include <stdio.h>
long n,m,x[20][20],v[50],l[20],c[20],ll[20],cc[20];
long s,ss;
void verifica()
{
for (int i=1;i<=m;i++)
if ( cc[i]<0 )
{
for (int j=1;j<=n;j++)
ll[j]=ll[j]-x[j][i]-x[j][i];
cc[i]*=-1;
}
ss=0;
for (int i=1;i<=n;i++)
ss+=ll[i];
if ( ss>s )
s=ss;
}
void submultimi(int k)
{
int i=k;
while ( i>=1 )
{
i=k;
while ( v[i]==1 && i>=1 )
{
v[i]=0;
i--;
}
v[i]=1;
for (int j=1;j<=n;j++)
{
ll[j]=l[j];
if ( v[j]==1 )
{
ll[j]=l[j]*-1;
ll[j]=l[j]*-1;
for (int h=1;h<=m;h++)
cc[h]=c[h]-x[j][h]-x[j][h];
}
}
verifica();
}
}
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",&x[i][j]);
l[i]+=x[i][j];
c[j]+=x[i][j];
s+=x[i][j];
}
submultimi(n);
printf("%ld",s);
fclose(stdout);
return 0;
}