Pagini recente » Cod sursa (job #964408) | Cod sursa (job #3221542) | Cod sursa (job #1207864) | Cod sursa (job #568294) | Cod sursa (job #2587311)
#include <bits/stdc++.h>
using namespace std;
int flip[16][16];
int N, M;
int sumRow(int i)
{
int s = 0;
for (int j = 0; j < M; j++)
s += flip[i][j];
return s;
}
int sumCol(int j)
{
int s = 0;
for (int i = 0; i < N; i++)
s += flip[i][j];
return s;
}
int main()
{
ifstream in("flip.in");
ofstream out("flip.out");
//istream &in = cin;
//ostream &out = cout;
int S = 0;
in >> N >> M;
for (int i = 0;i < N; i++)
{
for (int j = 0; j < M; j++)
{
in >> flip[i][j];
S += flip[i][j];
}
}
while (true)
{
int irm = 0, icm = 0;
int srm = sumRow(0), scm = sumCol(0);
for (int i = 1; i < N; i++)
{
int sr = sumRow(i);
if (sr < srm)
{
srm = sr;
irm = i;
}
}
for (int j = 1; j < M; j++)
{
int sc = sumCol(j);
if (sc < scm)
{
scm = sc;
icm = j;
}
}
if (srm < scm)
{
if (srm >= 0)
break;
for (int j = 0; j < M; j++)
flip[irm][j] = -flip[irm][j];
S -= 2 * srm;
}
else
{
if (scm >= 0)
break;
for (int i = 0; i < N; i++)
flip[i][icm] = -flip[i][icm];
S -= 2 * scm;
}
}
out << S;
}