Pagini recente » Cod sursa (job #1986819) | Cod sursa (job #2732071) | Cod sursa (job #1386552) | Cod sursa (job #463798) | Cod sursa (job #729062)
Cod sursa(job #729062)
#include<stdio.h>
int v[17],total=0,max=0,a[17][17],m,n;
void prelucrare (int p)
{
int i,j,coptotal=total;
for (i=1;i<=p;i++)
{
for (j=1;j<=n;j++)
{
a[j][v[i]]=-a[j][v[i]];
a[j][0]=a[j][0]+2*a[j][v[i]];
}
coptotal=coptotal-(2*a[0][v[i]]);
}
for (i=1;i<=n;i++)
if (a[i][0]<0)
coptotal=coptotal-(2*a[i][0]);
for (i=1;i<=p;i++)
for (j=1;j<=n;j++)
{
a[j][v[i]]=-a[j][v[i]];
a[j][0]=a[j][0]+2*a[j][v[i]];
}
if (max<coptotal)
max=coptotal;
}
void bkt (int p)
{
int i;
prelucrare(p-1);
for (i=1+v[p-1];i<=m;i++)
{
v[p]=i;
bkt(p+1);
}
}
int main ()
{
int i,j;
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d %d",&n,&m);
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
{
scanf("%d",&a[i][j]);
a[i][0]=a[i][0]+a[i][j];
a[0][j]=a[0][j]+a[i][j];
total=total+a[i][j];
}
bkt(1);
printf("%d",max);
return 0;
}