Pagini recente » Cod sursa (job #2711888) | Cod sursa (job #525448) | Cod sursa (job #2967333) | Cod sursa (job #1391480) | Cod sursa (job #2322915)
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int M[16][16],cp[16],cn[16],lp[16],ln[16],ok=1,aux,n,m,i,j,S;
int main()
{
f >> n >> m;
for(i=0;i<n;++i)
for(j=0;j<m;++j){
f >> M[i][j];
if(M[i][j]>=0){
lp[i] += M[i][j];
cp[j] += M[i][j];
}
else{
ln[i] += M[i][j];
cn[j] += M[i][j];
}}
while(ok){ok = 0;
for(i=0;i<n;++i)
if(-1*ln[i]>lp[i]){
ok = 1;
aux = -1 * ln[i];
ln[i] = -1 * lp[i];
lp[i] = aux;
for(j=1;j<m;++j){
M[i][j] *= -1;
cn[j] += M[i][j];
cp[j] += M[i][j];
}
}
for(j=0;j<m;++j)
if(-1*cn[j]>cp[j]){
ok = 1;
aux = -1 * cn[j];
cn[j] = -1 * cp[j];
cp[j] = aux;
for(i=1;i<n;++i){
M[i][j] *= -1;
ln[i] += M[i][j];
lp[i] += M[i][j];
}}}
for(i=0;i<n;++i)
for(j=0;j<m;++j)
S += M[i][j];
g << S;
return 0;
}