Pagini recente » Monitorul de evaluare | Cod sursa (job #2265052) | Cod sursa (job #2707071) | Cod sursa (job #3213566) | Cod sursa (job #2451269)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{ifstream fin("flip.in");
ofstream fout("flip.out");
int n,m,a[100][100],sp,sn,k=0,s=0,neg=0,poz=0;
fin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
fin>>a[i][j];
}
}
while(k==0){
k=1;
for(int i=0;i<n;i++){
sn=0;
sp=0;
poz=0;
neg=0;
for(int j=0;j<m;j++){
if(a[i][j]>0){
sp+=a[i][j];
poz++;
}else
sn+=a[i][j];
neg++;
}
if(sp<-sn||poz<neg){
for(int j=0;j<m;j++){
a[i][j]=-a[i][j];
}
k=0;
}
}
for(int i=0;i<m;i++){
sn=0;
sp=0;
poz=0;
neg=0;
for(int j=0;j<n;j++){
if(a[j][i]>0){
sp+=a[j][i];
poz++;
}else
sn+=a[j][i];
neg++;
}
if(sp<-sn||poz<neg){
for(int j=0;j<n;j++){
a[j][i]=-a[j][i];
}
k=0;
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
s+=a[i][j];
}
}
fout<<s;
fin.close();
fout.close();
return 0;
}