Pagini recente » Cod sursa (job #827945) | Cod sursa (job #2238476) | Cod sursa (job #1713619) | Cod sursa (job #2311312) | Cod sursa (job #1962788)
//flip.cpp
#include <fstream>
using namespace std;
ifstream fin ("flip.in");
ofstream fout ("flip.out");
const int Inf = 0x3f3f3f3f;
int n, m, a[17][17], s, minim1 = Inf, minim2 = Inf, pmin1, pmin2;
int main ()
{
fin >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
fin >> a[i][j];
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
a[0][j] += a[i][j];
for (int j = 1; j <= m; ++j)
for (int i = 1; i <= n; ++i)
a[i][0] += a[i][j];
for (int j = 1; j <= m; ++j)
if (a[0][j] < minim1)
minim1 = a[0][j], pmin1 = j;
for (int i = 1; i <= n; ++i)
if (a[i][0] < minim2)
minim2 = a[i][0], pmin2 = i;
if (minim1 < minim2)
{
for (int i = 1; i <= n; ++i)
a[i][0] = 0;
for (int i = 1; i <= n; ++i)
a[i][pmin1] *= -1;
for (int j = 1; j <= m; ++j)
for (int i = 1; i <= n; ++i)
a[i][0] += a[i][j];
minim2 = Inf;
for (int i = 1; i <= n; ++i)
if (a[i][0] < minim2)
minim2 = a[i][0], pmin2 = i;
for (int j = 1; j <= m; ++j)
a[pmin2][j] *= -1;
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
s += a[i][j];
}
else
{
for (int j = 1; j <= m; ++j)
a[0][j] = 0;
for (int j = 1; j <= m; ++j)
a[pmin2][j] *= -1;
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
a[0][j] += a[i][j];
minim1 = Inf;
for (int j = 1; j <= m; ++j)
if (a[0][j] < minim1)
minim1 = a[0][j], pmin1 = j;
for (int i = 1; i <= n; ++i)
a[i][pmin1] *= -1;
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= m; ++j)
s += a[i][j];
}
fout << s;
return 0;
}