Pagini recente » Cod sursa (job #595508) | Cod sursa (job #2830639) | Cod sursa (job #544512) | Cod sursa (job #415248) | Cod sursa (job #22691)
Cod sursa(job #22691)
#include<iostream>
#include<math.h>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
void salvare(long long (*aux)[20],long long (*a)[20],int n,m)
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
aux[i][j]=a[i][j];
}
void restaurare(long long(*a)[20],long long (*aux)[20],n,m)
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
a[i][j]=aux[i][j];
}
int main()
{long long a[20][20],SumaInitiala=0,SumaFinala=0,aux[20][20];
int n,m;
fin>>n>>m;
for(int i=1;i<=n;i++) //aici fac citirea
for(int j=1;j<=n;j++)
{fin>>a[i][j];SumaInitiala+=a[i][j];}
salvare(aux,a,n,m);
for(int i=1;i<=n;i++) //pe linii
{
long long SumaPoz=0,SumaNeg=0;
for(int j=1;j<=m;j++)
{
if(a[i][j]<0)
SumaNeg+=abs(a[i][j]);
else
SumaPoz+=a[i][j];
}
if(SumaPoz<SumaNeg)
{for(int j=1;j<=n;j++)
a[i][j]*=-1;
SumaInitiala+=2*(SumaNeg-SumaPoz);}
}
for(int j=1;j<=m;j++) //pe coloane
{
long long SumaPoz=0,SumaNeg=0;
for(int i=1;i<=n;i++)
{if(a[i][j]<0)
SumaNeg+=abs(a[i][j]);
else
SumaPoz+=a[i][j];
}
if(SumaPoz<SumaNeg)
{
for(int i=1;i<=n;i++)
a[i][j]*=-1;
SumaInitiala+=2*(SumaNeg-SumaPoz);
}
}
restaurare(a,aux,n,m);
for(int j=1;j<=m;j++) //pe coloane
{
long long SumaPoz=0,SumaNeg=0;
for(int i=1;i<=n;i++)
{if(a[i][j]<0)
SumaNeg+=abs(a[i][j]);
else
SumaPoz+=a[i][j];
}
if(SumaPoz<SumaNeg)
{
for(int i=1;i<=n;i++)
a[i][j]*=-1;
SumaFinala+=2*(SumaNeg-SumaPoz);
}
}
for(int i=1;i<=n;i++) //pe linii
{
long long SumaPoz=0,SumaNeg=0;
for(int j=1;j<=m;j++)
{
if(a[i][j]<0)
SumaNeg+=abs(a[i][j]);
else
SumaPoz+=a[i][j];
}
if(SumaPoz<SumaNeg)
{for(int j=1;j<=n;j++)
a[i][j]*=-1;
SumaFinala+=2*(SumaNeg-SumaPoz);}
}
if(SumaFinala>=SumaInitiala)
fout<<SumaFinala;
else
fout<<SumaInitiala;
return 0;
}