Pagini recente » Istoria paginii runda/ojipreg | preONI 2007, Runda 4, Clasele 11-12 | Cod sursa (job #183849) | Cod sursa (job #1795989) | Cod sursa (job #412980)
Cod sursa(job #412980)
#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[20];
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,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;
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;
}