Pagini recente » Cod sursa (job #2882153) | Cod sursa (job #1267747) | Cod sursa (job #2950152) | Cod sursa (job #2898958) | Cod sursa (job #588425)
Cod sursa(job #588425)
#include <cstdio>
#include <algorithm>
FILE *g=fopen("flip.in","r");
FILE *z=fopen("flip.out","w");
using namespace std;
int a[20][20],b[20][20],m,n;
int abs(int k)
{
k*=-1;
return k;
}
int incepeculini()
{
bool ok=false;
int i,j,u,s=0,smax,spoz=0,sneg=0;
for(i=1;i<=n;i++)
{
spoz=0; sneg=0;
for(j=1;j<=m;j++)
{
if(b[i][j]>0) spoz+=b[i][j];
if(b[i][j]<0) sneg+=abs(b[i][j]);
}
if(sneg>spoz)
{
ok=true;
for(u=1;u<=m;u++)
b[i][u]*=-1;
}
}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s=b[i][j];
smax=s;
s=0;
ok=false;
for(j=1;j<=m;j++)
{
spoz=0; sneg=0;
for(i=1;i<=n;i++)
{
if(b[i][j]>0) spoz+=b[i][j];
if(b[i][j]<0) spoz+=abs(b[i][j]);
}
if(sneg>spoz)
{
ok=true;
for(u=1;u<=n;u++)
b[u][j]*=-1;
}
}
if(ok==true)
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s+=b[i][j];
if(smax<s) smax=s;
s=0;
}
ok=false;
for(i=1;i<=n;i++)
{
spoz=0; sneg=0;
for(j=1;j<=m;j++)
{
if(b[i][j]>0) spoz+=b[i][j];
if(b[i][j]<0) sneg+=abs(b[i][j]);
}
if(sneg>spoz)
{
ok=true;
for(u=1;u<=m;u++)
b[i][u]*=-1;
}
}
if(ok==true)
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s+=b[i][j];
if(smax<s) smax=s;
s=0;
}
ok=false;
for(j=1;j<=m;j++)
{
spoz=0; sneg=0;
for(i=1;i<=n;i++)
{
if(b[i][j]>0) spoz+=b[i][j];
if(b[i][j]<0) sneg+=abs(b[i][j]);
}
if(sneg>spoz)
{
ok=true;
for(u=1;u<=n;u++)
b[u][j]*=-1;
}
}
if(ok==true)
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s+=b[i][j];
if(smax<s) smax=s;
s=0;
}
ok=false;
for(i=1;i<=n;i++)
{
spoz=0; sneg=0;
for(j=1;j<=m;j++)
{
if(b[i][j]>0) spoz+=b[i][j];
if(b[i][j]<0) sneg+=abs(b[i][j]);
}
if(sneg>spoz)
{
ok=true;
for(u=1;u<=m;u++)
b[i][u]*=-1;
}
}
if(ok==true)
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s+=b[i][j];
if(smax<s) smax=s;
s=0;
}
return smax;
}
int incepecucoloane()
{
bool ok=false;
int i,j,u,s=0,smax,spoz=0,sneg=0;
for(j=1;j<=m;j++)
{
spoz=0; sneg=0;
for(i=1;i<=n;i++)
{
if(a[i][j]>0) spoz+=a[i][j];
if(a[i][j]<0) sneg+=abs(a[i][j]);
}
if(sneg>spoz)
{
for(u=1;u<=n;u++)
a[u][j]*=-1;
}
}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s+=a[i][j];
smax=s;
for(i=1;i<=n;i++)
{
spoz=0; sneg=0;
for(j=1;j<=m;j++)
{
if(a[i][j]>0) spoz+=a[i][j];
if(a[i][j]<0) sneg+=abs(a[i][j]);
}
if(sneg>spoz)
{
ok=true;
for(u=1;u<=m;u++)
a[i][u]*=-1;
}
}
if(ok==true)
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s+=a[i][j];
if(smax<s) smax=s;
s=0;
}
ok=false;
for(j=1;j<=m;j++)
{
spoz=0; sneg=0;
for(i=1;i<=n;i++)
{
if(a[i][j]>0) spoz+=a[i][j];
if(a[i][j]<0) sneg+=abs(a[i][j]);
}
if(sneg>spoz)
{
ok=true;
for(u=1;u<=n;u++)
a[u][j]*=-1;
}
}
if(ok==true)
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s+=a[i][j];
if(smax<s) smax=s;
s=0;
}
ok=false;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(a[i][j]>0) spoz+=a[i][j];
if(a[i][j]<0) sneg+=abs(a[i][j]);
}
if(sneg>spoz)
{
ok=true;
for(u=1;u<=m;u++)
a[i][u]*=-1;
}
}
if(ok==true)
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s+=a[i][j];
if(smax<s) smax=s;
s=0;
}
ok=false;
for(j=1;j<=m;j++)
{
spoz=0; sneg=0;
for(i=1;i<=n;i++)
{
if(a[i][j]>0) spoz+=a[i][j];
if(a[i][j]<0) sneg+=abs(a[i][j]);
}
if(sneg>spoz)
{
ok=true;
for(u=1;u<=n;u++)
a[u][j]*=-1;
}
}
if(ok==true)
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s+=a[i][j];
if(smax<s) smax=s;
s=0;
}
return smax;
}
int main()
{
int i,j;
fscanf(g,"%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
fscanf(g,"%d",&a[i][j]);
b[i][j]=a[i][j];
}
int a=incepeculini();
int b=incepecucoloane();
fprintf(z,"%d",max(a,b));
return 0;
}