Pagini recente » Cod sursa (job #752141) | Cod sursa (job #1614611) | Cod sursa (job #2319377) | Cod sursa (job #97395) | Cod sursa (job #1727490)
#include <cstdio>
using namespace std;
int l[33],lin[17],col[17],i,j,n,m,pas,ok,nr,s,max1,a[17][17],z,k;
int valid(int x,int y)
{
for(int i=1;i<y;i++)
if(l[i]==x) return 0;
return 1;
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
pas=1;
nr=1;
max1=-999999;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
scanf("%d",&a[i][j]);
s+=a[i][j];
}
while(pas)
{
ok=0;
while(!ok&&l[pas]<n+m)
{
l[pas]++;
if(valid(l[pas],pas))
ok=1;
}
if(l[1]>n)
{
printf("%d",max1);
return 0;
}
if(ok==0)
pas--;
else
{
z=s;
if(l[1]==7&&l[2]==3)
{
k=1;
}
for(i=1;i<=pas;i++)
if(l[i]>n)
{
for(j=1;j<=n;j++)
s-=2*a[j][l[i]-n];
}
else
{
for(j=1;j<=m;j++)
s-=2*a[l[i]][j];
}
if(s>max1)
max1=s;
if(pas<n+m)
{
pas++;
l[pas]=0;
}
s=z;
}
}
printf("%d",max1);
return 0;
}