Pagini recente » Cod sursa (job #120425) | Cod sursa (job #921544) | Cod sursa (job #819095) | Cod sursa (job #697718) | Cod sursa (job #2055114)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream inf("flip.in");
ofstream oinf("flip.out");
void sumal(int v[][20],int x,int m){
int s1=0,s2=0;
for(int i=1;i<=m;i++){
if(v[x][i]>0)
s1+=v[x][i];
else
s2+=v[x][i];
}
if(s1<abs(s2)){
for(int i=1;i<=m;i++)
v[x][i]*=-1;
}
}
void sumac(int v[][20],int x,int n){
int s1=0,s2=0;
for(int i=1;i<=n;i++){
if(v[i][x]>0)
s1+=v[i][x];
else
s2+=v[i][x];
}
if(s1<abs(s2))
for(int i=1;i<=n;i++)
v[i][x]*=-1;
}
void egalare(int a[][20],int n,int m,int b[][20]){
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
b[i][j]=a[i][j];
}
void verif(int a[][20],int n,int m,int b[][20]){
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(b[i][j]!=a[i][j])
return 1;
return 0;
}
int main()
{
int n,m,a[20][20],s=0,b[20][20];
inf>>n;inf>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
inf>>a[i][j];
do{
egalare(a,n,m,b);
for(int i=1;i<=n;i++)
sumal(a,i,m);
for(int i=1;i<=m;i++)
sumac(a,i,n);
}while(verif(a,n,m,b))
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
s+=a[i][j];
oinf<<s;
return 0;
}