Pagini recente » Cod sursa (job #2790153) | Cod sursa (job #1037928) | Cod sursa (job #2580924) | Cod sursa (job #1543887) | Cod sursa (job #2223671)
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int linii(float M[18][18], int m, int l)
{
float sp = 0, sn=0;
for (int i = 1; i <= m; i++)
if (M[l][i] < 0)
sn += M[l][i];
else
sp += M[l][i];
if ((-1)*sn > sp)
{
for (int i = 1; i <= m; i++)
M[l][i] = M[l][i] * (-1);
return 1;
}
return 0;
}
int coloane(float M[18][18], int n, int c)
{
float sp = 0, sn = 0;
for (int i = 1; i <= n; i++)
if (M[i][c] < 0)
sn += M[i][c];
else
sp += M[i][c];
if ((-1)*sn > sp)
{
for (int i = 1; i <= n; i++)
M[i][c] = M[i][c] * (-1);
return 1;
}
return 0;
}
int main()
{
float M[18][18];
int n, m;
f >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
f >> M[i][j];
int ok = 1;
while (ok)
{
ok = 0;
for (int i = 1; i <= m; i++)
if (coloane(M, n, i) == 1)
ok = 1;
for (int i = 1; i <= n; i++)
if (linii(M, m, i) == 1)
ok = 1;
}
int S = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
S += M[i][j];
}
g << S;
return 0;
}