Cod sursa(job #596794)
#include<fstream.h>
#include<iostream.h>
int a[17][17],n,m,max;
void linie(int i)
{
for(int j=1;j<=m;j++)
a[i][j]*=-1;
}
void coloana(int j)
{
for(int i=1;i<=n;i++)
a[i][j]*=-1;
}
void chestie(int i, int j, int &s)
{
if(s>max)max=s;
for(;i<=n;i++)
for(;j<=m;j++)
if(a[i][j]>=0)s+=a[i][j];
else{
linie(i);chestie(i+1,j+1,s);
coloana(j);chestie(i+1,j+1,s);
linie(i);coloana(j);chestie(i+1,j+1,s);
}
}
int main ()
{
int i,j,s=0;
ifstream f("flip.in");
ofstream g("flip.out");
f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
f>>a[i][j];
chestie(1,1,s);
g<<max*2<<"\n";
return 0;
}