Pagini recente » Cod sursa (job #2552680) | Cod sursa (job #3237039) | Cod sursa (job #2132882) | Cod sursa (job #305734) | Cod sursa (job #501859)
Cod sursa(job #501859)
#include<stdio.h>
int n,m,a[17][17],b[17][17],smax,sp,sn,suma,sn2,sp2,suma2,sp3,sn3,suma3;
int main()
{
int i,j,i2,j2,i3,j3;
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d%d",&n,&m);
/////citesc matr a si o copiez in matr b
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
scanf("%d",&a[i][j]);
b[i][j]=a[i][j];
smax+=b[i][j];
}
}
/////
for(j=1;j<=m;j++)
{
sp=0;
sn=0;
for(i=1;i<=n;i++)
{
if(b[i][j]>=0)
sp+=b[i][j];
else
sn+=b[i][j];
}
if(sn+sp>=0)
suma+=sn+sp;
if(-sn>sp)
{
suma+=-sn-sp;
for(i=1;i<=n;i++)
b[i][j]=-a[i][j];
////////
for(i3=1;i3<=n;i3++)
{
sn3=0;
sp3=0;
for(j3=1;j3<=m;j3++)
{
if(b[i3][j3]<0)
sn3+=b[i3][j3];
else
sp3=b[i3][j3];
}
if(sn3+sp3>=0)
suma3+=sn3+sp3;
else
{
suma3+=-sn3-sp3;
for(j3=1;j3<=m;j3++)
b[i3][j3]=-a[i3][j3];
}
if(suma3>smax)
smax=suma3;
}
///////
}
if(suma>smax)
smax=suma;
}
///////
suma=0;
for(i=1;i<=n;i++)
{
sp=0;
sn=0;
for(j=1;j<=m;j++)
{
if(b[i][j]>=0)
sp+=b[i][j];
else
sn+=b[i][j];
}
if(sn+sp>=0)
suma+=sn+sp;
if(-sn>sp)
{
suma+=-sn-sp;
for(j=1;j<=m;j++)
b[i][j]=-a[i][j];
//////////
for(j2=1;j2<=m;j2++)
{
sp2=0;
sn2=0;
for(i2=1;i2<=n;i2++)
{
if(b[i2][j2]>=0)
sp2+=b[i2][j2];
else
sn2+=b[i2][j2];
}
if(sn2+sp2>=0)
suma2+=sn2+sp2;
if(-sn2>sp2)
{
suma2+=-sn2-sp2;
for(i2=1;i2<=n;i2++)
b[i2][j2]=-a[i2][j2];
}
if(suma2>smax)
smax=suma2;
}
//////////
}
if(suma>smax)
smax=suma;
}
smax=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
//printf("%d ",b[i][j]);
smax+=b[i][j];
}
}
printf("%d\n",smax);
return 0;
}