Pagini recente » Cod sursa (job #2983094) | Cod sursa (job #1221581) | Cod sursa (job #515754) | Cod sursa (job #566097) | Cod sursa (job #1727480)
#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;
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]);
while(pas)
{
ok=0;
while(!ok&&l[pas]<n+m)
{
l[pas]++;
if(valid(l[pas],pas))
ok=1;
}
if(ok==0)
pas--;
else
{
s=0;
for(i=1;i<=pas;i++)
if(l[i]>n)
col[l[i]-n]=nr;
else
lin[l[i]]=nr;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
if(lin[i]==nr&&col[j]!=nr)
s-=a[i][j];
else
if(lin[i]!=nr&&col[j]==nr)
s-=a[i][j];
else
s+=a[i][j];
}
if(s>max1)
max1=s;
if(pas<n+m)
{
pas++;
l[pas]=0;
}
}
nr++;
}
printf("%d",max1);
return 0;
}