Pagini recente » Cod sursa (job #205390) | Cod sursa (job #1524838) | Cod sursa (job #2696830) | Cod sursa (job #369110) | Cod sursa (job #134154)
Cod sursa(job #134154)
#include<stdio.h>
FILE*fin=fopen("flip.in","r");
FILE*fout=fopen("flip.out","w");
int n,m,a[20][20],b[20][20];
int main()
{
int best=-1,i,j,l,c,sum,lim,s;
fscanf(fin,"%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
fscanf(fin,"%d",&a[i][j]);
fclose(fin);
lim=1<<n;
for(i=0;i<lim;i++)
{
for(l=1;l<=n;l++)
if(1<<(l-1)&i) for(j=1;j<=m;j++)
b[l][j]=-a[l][j];
else for(j=1;j<=m;j++)
b[l][j]=a[l][j];
sum=0;
for(j=1;j<=m;j++)
{
s=0;
for(l=1;l<=n;l++)
s+=b[l][j];
if(s<0) s=-s;
sum+=s;
}
if(sum>best) best=sum;
}
lim=1<<m;
for(i=0;i<lim;i++)
{
for(c=1;c<=m;c++)
if(1<<(c-1)&i) for(j=1;j<=n;j++)
b[j][c]=-a[j][c];
else for(j=1;j<=n;j++)
b[j][c]=a[j][c];
sum=0;
for(j=1;j<=n;j++)
{
s=0;
for(c=1;c<=m;c++)
s+=b[j][c];
if(s<0) s=-s;
sum+=s;
}
if(sum>best) best=sum;
}
fprintf(fout,"%d",best);
return 0;
}