Cod sursa(job #775899)
#include<stdio.h>
long a[20];
long b[20];
long c[20][20];
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
long m,n,i,j,s1,t,s2;
s1=-999999;
scanf("%ld",&n);
scanf("%ld",&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
scanf("%ld",&c[i][j]);
do
{
for(i=n;i>=1;i--)
if(a[i]==0)
{
a[i]=1;
break;
}
for(t=i+1;t<=n;t++)
if(a[t]==1)
a[t]=0;
do
{
s2=0;
for(j=m;j>=1;j--)
if(b[j]==0)
{
b[j]=1;
break;
}
for(t=j+1;t<=m;t++)
if(b[t]==1)
b[t]=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i]==1 && b[j]==1)
s2=s2+c[i][j];
else
if(a[i]==1 || b[j]==1)
s2=s2-c[i][j];
else
s2=s2+c[i][j];
if(s2>s1)
s1=s2;
}while(b[1]==0);
for(i=1;i<=m;i++)
b[i]=0;
}while(a[1]==0);
printf("%ld",s1);
return 0;
}