Pagini recente » Cod sursa (job #2015374) | Cod sursa (job #1505969) | Istoria paginii runda/simci | Cod sursa (job #133476) | Cod sursa (job #710876)
Cod sursa(job #710876)
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n, m;
double flip[16][16],spoz, sneg, sumatot, scur;
bool gata = false;
void Solve();
double Flip(int i);
double Flipcol(int j);
int main()
{
Solve();
fin.close();
fout.close();
return 0;
}
void Solve()
{
fin >> n >> m;
do{
gata = true;
sumatot = 0; scur = 0; sneg = 0; spoz = 0;
for (int i = 0; i < n; i++)
{
spoz = 0;
sneg = 0;
for (int j = 0; j < m; j++)
{
fin >> flip[i][j];
if (flip[i][j] > 0)
spoz += flip[i][j];
else
sneg += flip[i][j] * (-1);
}
if (sneg > spoz)
{
gata = false;
Flip(i);
}
}
for (int j = 0; j < m; j++)
{
spoz = 0;
sneg = 0;
scur = 0;
for (int i = 0; i < n; i++)
{
if (flip[i][j] > 0)
{
spoz += flip[i][j];
scur += flip[i][j];
}
else
{
sneg += flip[i][j] * (-1);
scur += flip[i][j];
}
}
if (sneg > spoz)
{
gata = false;
scur = 0;
Flipcol(j);
}
sumatot += scur;
}
} while (gata == false);
fout << sumatot;
}
double Flip(int i)
{
for (int j = 0; j < m; j++)
flip[i][j] *= -1;
return 0;
}
double Flipcol(int j)
{
for (int i = 0; i < n; i++)
{
flip[i][j] *= -1;
scur += flip[i][j];
}
return scur;
}