Pagini recente » Cod sursa (job #1711592) | Cod sursa (job #887750) | Cod sursa (job #3218794) | Cod sursa (job #97530) | Cod sursa (job #828022)
Cod sursa(job #828022)
#include<stdio.h>
int n,m,a[20][20],st[35];
long max=-32000000,s;
void back(int k)
{
int i,j;
for(i=st[k-1]+1;i<=n+m;i++)
{
st[k]=i;
if(i<=n)
for(j=1;j<=m;j++)
{
s=s-2*a[i][j];
a[i][j]=a[i][j]*-1;
}
else
for(j=1;j<=n;j++)
{
s=s-2*a[j][i-n];
a[j][i-n]=a[j][i-n]*-1;
}
if(s>max)
max=s;
back(k+1);
if(i<=n)
for(j=1;j<=m;j++)
{
a[i][j]=a[i][j]*-1;
s=s+2*a[i][j];
}
else
for(j=1;j<=n;j++)
{
a[j][i-n]=a[j][i-n]*-1;
s=s+2*a[j][i-n];
}
}
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
int i,j;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
scanf("%d",&a[i][j]);
s=s+a[i][j];
}
back(1);
printf("%ld",max);
return 0;
}