Pagini recente » Cod sursa (job #1296934) | Cod sursa (job #2212289) | Cod sursa (job #1384772) | Cod sursa (job #2390300) | Cod sursa (job #317614)
Cod sursa(job #317614)
#include<stdio.h>
int a[17][17],i,x,j,n,s,smax,m;
char b[17],c[17];
void verifical()
{ s=0;
for(i=1;i<=n;i++)
{ if(b[i-1]!='0') for(j=1;j<=m;j++) s-=a[i][j];
else for(j=1;j<=m;j++) s+=a[i][j];
}
if(s>smax)smax=s;
}
void verificac()
{ s=0;
for(j=1;j<=m;j++)
{ if(b[j-1]!='0') for(i=1;i<=n;i++) s-=a[i][j];
else for(i=1;i<=n;i++) s+=a[i][j];
}
if(s>smax) { smax=s;
for(i=0;i<m;i++) c[i]=b[i];
}
}
int gencodl(int i1)
{ if(i1==n) verifical();
else { b[i1]='0'; gencodl(i1+1);
b[i1]='1'; gencodl(i1+1);
}
return 0;
}
int gencodc(int i1)
{ if(i1==m) verificac();
else { b[i1]='0'; gencodc(i1+1);
b[i1]='1'; gencodc(i1+1);
}
return 0;
}
int main()
{ 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]),smax+=a[i][j];
gencodc(0);
for(j=1;j<=m;j++)
if(c[j-1]!='0') for(i=1;i<=n;i++) a[i][j]=-a[i][j];
gencodl(0);
printf("%d\n",smax);
fclose(stdin);
fclose(stdout);
return 0;
}