Pagini recente » Cod sursa (job #2612031) | Cod sursa (job #78100) | Cod sursa (job #2328188) | Cod sursa (job #2441412) | Cod sursa (job #412983)
Cod sursa(job #412983)
#include<stdio.h>
FILE *f=fopen("flip.in","r");
FILE *g=fopen("flip.out","w");
int n,m,i,j,sw;
long a[17][17],smax=-100000000,st[400];
int max(int x,int y)
{if(x>y) {sw=0;return x;}
else {sw=1; return y;}
}
void schimbare(int i,int j)
{int q;
for(q=1;q<=n;q++)
a[q][j]=a[q][j]*(-1);
for(q=1;q<=m;q++)
a[i][q]=a[i][q]*(-1);
}
long suma()
{int s=0,j,q;
for(j=1;j<=n;j++)
for(q=1;q<=m;q++)
s+=a[j][q];
return s;
}
void back(int k)
{int i,j;
long p;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{p=suma();
st[k]=p;
schimbare(i,j);
p=suma();
if(p>st[k])
st[k]=p;
else schimbare(i,j);
if(i==n && j==m)
{
for(i=1;i<=k;i++)
if(smax<st[i])smax=st[i];
return;
}
}
}
int main()
{fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
fscanf(f,"%ld",&a[i][j]);
st[1]=-100000000;
back(1);
fprintf(g,"%ld\n",smax);
return 0;
}