Pagini recente » Cod sursa (job #2883048) | Cod sursa (job #2392092) | Cod sursa (job #1818652) | Cod sursa (job #2131306) | Cod sursa (job #188230)
Cod sursa(job #188230)
#include<stdio.h>
long n, m,x[100][100],o[100],v[100],ok=1,i,j,s;
void flipc(long jj);
void flipl(long ii);
int main()
{ freopen("flip.in","rt",stdin); freopen("flip.out","wt",stdout);
scanf("%ld%ld",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++) { scanf("%ld",&x[i][j]);
o[i]+=x[i][j]; v[j]+=x[i][j];
}
while(ok)
{ ok=0;
for(i=1;i<=m;i++) if(v[i]<0) { flipc(i); ok=1;}
for(i=1;i<=n;i++) if(o[i]<0) { flipl(i); ok=1;}
}
for(i=1;i<=m;i++) s+=v[i];
printf("%ld",s);
fcloseall();
return 0;
}
void flipc(long jj)
{ long ii;
for(ii=1;ii<=n;ii++) { o[ii]-=2*x[ii][jj];
x[ii][jj]*=-1;
}
v[jj]*=-1;
}
void flipl(long ii)
{ int jj;
for(jj=1;jj<=m;jj++) { v[jj]-=2*x[ii][jj];
x[ii][jj]*=-1;
}
o[ii]*=-1;
}