Pagini recente » Cod sursa (job #3250022) | Cod sursa (job #119519) | Cod sursa (job #393801) | Cod sursa (job #468225) | Cod sursa (job #1094863)
#include <iostream>
#include<math.h>
#include<fstream>
using namespace std;
void flipl(long int a[][16],int n,int m)
{
int i,j;
for(i=1;i<=n;i++)
{
int sn=0,sp=0;
for(j=1;j<=m;j++)
if(a[i][j]<0)
sn=sn+a[i][j];
else
sp=sp+a[i][j];
if(-sn>sp)
for(j=1;j<=m;j++)
a[i][j]=-a[i][j];
}
}
void flipc(long int a[][16],int n,int m)
{
int i,j;
for(j=1;j<=m;j++)
{
int sn=0,sp=0;
for(i=1;i<=n;i++)
if(a[i][j]<0)
sn=sn+a[i][j];
else
sp=sp+a[i][j];
if(-sn>sp)
for(i=1;i<=n;i++)
a[i][j]=-a[i][j];
}
}
int verifc (long int a[][16],int n,int m)
{
int ver=1,i,j;
for(j=1;j<=m;j++)
{
int sn=0,sp=0;
for(i=1;i<=n;i++)
if(a[i][j]<0)
sn=sn+a[i][j];
else
sp=sp+a[i][j];
if(-sn>sp)
ver=0;
}
return ver;
}
int verifl (long int a[][16],int n,int m)
{
int ver=1,i,j;
for(i=1;i<=n;i++)
{
int sn=0,sp=0;
for(j=1;j<=m;j++)
if(a[i][j]<0)
sn=sn+a[i][j];
else
sp=sp+a[i][j];
if(-sn>sp)
ver=0;
}
return ver;
}
int suma(long int a[][16],int n,int m)
{
int s=0,i,j;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s=s+a[i][j];
return s;
}
int main()
{
long int a[16][16],i,j;
int n,m;
fstream f("flip.in",ios::in);
fstream g("flip.out",ios::out);
f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
f>>a[i][j];
do
{
flipl(a,n,m);
flipc(a,n,m);
}
while ((verifc(a,n,m)+verifl(a,n,m))==0);
g<<suma(a,n,m);
f.close();
g.close();
return 0;
}