Pagini recente » Cod sursa (job #489383) | Cod sursa (job #1115233) | Cod sursa (job #754992) | Cod sursa (job #2767983) | Cod sursa (job #33251)
Cod sursa(job #33251)
#include <iostream.h>
#include <stdio.h>
int n,m,mat[32][32];
void comutare(int tip,int linie){
int i;
if(tip==1){
for(i=1;i<=m;i++) mat[linie][i]*=-1;
}
else for(i=1;i<=n;i++) mat[i][linie]*=-1;
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d %d",&n,&m);
int i,j,S=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++){
scanf("%d",&mat[i][j]);
S+=mat[i][j];
}
int comut=1,sum1=0,sum2=0;
int val=1;
while(val){
if(comut==1){
for(i=1;i<=m;i++){
sum1=sum2=0;
for(j=1;j<=n;j++)
if(mat[i][j]<0) sum1+=mat[i][j];
else sum2+=mat[i][j];
if(sum1<(sum2*(-1))) {comutare(2,i);comut=2;}
}
if(comut) val=1;
else val=0;
}
else{
for(i=1;i<=n;i++){
sum1=sum2=0;
for(j=1;j<=m;j++)
if(mat[i][j]<0) sum1+=mat[i][j];
else sum2+=mat[i][j];
if(sum1<(sum2*(-1))) {comutare(1,i);comut=1;}
}
if(comut) val=1;
else val=0;
}
}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
S+=mat[i][j];
printf("%d",S);
return 0;
}