Pagini recente » Cod sursa (job #1012190) | Cod sursa (job #1218729) | Cod sursa (job #2480106) | Cod sursa (job #342757) | Cod sursa (job #670285)
Cod sursa(job #670285)
#include<fstream>
#include<cmath>
using namespace std;
fstream fin("flip.in",ios::in),fout("flip.out",ios::out);
int n,m,x[20][20];
void sumal(int l,int &sp,int &sn,int &ok)
{
int i;
ok=0;
sn=sp=0;
for(i=1;i<=m;i++)
{
if(x[l][i]>=0)
sp+=x[l][i];
else
sn+=-(x[l][i]);
}
if(sp>sn)
ok=1;
}
void sumac(int c,int &sp,int &sn,int &ok)
{
int i;
ok=0;
sn=sp=0;
for(i=1;i<=n;i++)
{
if(x[i][c]>=0)
sp+=x[i][c];
else
sn+=-(x[i][c]);
}
if(sp>sn)
ok=1;
}
void comutarel(int l)
{
for(int i=1;i<=m;i++)
{
x[l][i]*=-1;
}
}
void comutarec(int c)
{
for(int i=1;i<=n;i++)
{
x[i][c]*=-1;
}
}
int main()
{
int i,j,sn=0,sp=0,s=0,ok;
fin>>n>>m;
for(i=1;i<=n;i++)
{
sn=sp=0;
for(j=1;j<=m;j++)
{
fin>>x[i][j];
}
sumal(i,sp,sn,ok);
if(ok==1)
{
s+=sn-sp;
comutarel(i);
}
else
{
s+=sp-sn;
}
}
for(j=1;j<=n;j++)
{
sn=sp=0;
sumac(j,sp,sn,ok);
if(ok==1)
{
s+=sn-sp;
comutarec(j);
}
else
{
s+=sp-sn;
}
}
fout<<-s;
fin.close();
fout.close();
return 0;
}