Pagini recente » Cod sursa (job #2389561) | Cod sursa (job #2454836) | Cod sursa (job #1846345) | Cod sursa (job #2898127) | Cod sursa (job #89094)
Cod sursa(job #89094)
#include<math.h>
#include<stdio.h>
long n,m,i,j,k,a[25][25],dpn,v[25],ma[25][25],max,df,h,sum;
int binar(long aux)
{
long ipr=0;
h=0;
for(ipr=1;ipr<=16;ipr++)
v[ipr]=0;
//memset(v,0,sizeof(v));
while(aux!=0)
{
h++;
v[h]=aux%2;
aux=aux/2;
}
return 0;
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%ld%ld",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
scanf("%ld",&a[i][j]);
ma[i][j]=a[i][j];
}
dpn=1;
for(i=1;i<=m;i++)
dpn=dpn*2;
for(i=1;i<dpn;i++)
{
df=0;
binar(i);
for(j=1;j<=m;j++)
if(v[j]==1)
{
for(k=1;k<=n;k++)
a[k][j]=a[k][j]*(-1);
}
for(j=1;j<=n;j++)
{
sum=0;
for(k=1;k<=m;k++)
sum=sum+a[j][k];
if(sum<0)
sum=sum-2*sum;
df=df+sum;
}
if(max<df) max=df;
for(j=1;j<=n;j++)
for(k=1;k<=m;k++)
a[j][k]=ma[j][k];
}
printf("%ld",max);
return 0;
}