Cod sursa(job #708045)
#include <cstdio>
using namespace std;
int a[17][17], n, m, smax=0;
void citire()
{
scanf("%d%d", &n, &m);
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
scanf("%d", &a[i][j]);
}
int numarare(int a[17][17])
{
int sum=0;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
sum+=a[i][j];
return sum;
}
void flip(int p, char c, int a[17][17])
{
if(c=='c')
{
for(int i=1; i<=n; i++)
a[i][p]=a[i][p]*-1;
return;
}
for(int i=1; i<=m; i++)
a[p][i]=a[p][i]*-1;
}
void back(int a[17][17], int l, int c)
{
int sum=numarare(a);
if(smax<sum) smax=sum;
for(int i=l; i<=n; i++)
{
flip(i,'l',a);
back(a,l+1,c);
flip(i,'l',a);
}
for(int j=c; j<=m; j++)
{
flip(j,'c',a);
back(a,l,c+1);
flip(j,'c',a);
}
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
citire();
back(a,1,1);
printf("%d", smax);
return 0;
}