Pagini recente » Cod sursa (job #2920923) | Cod sursa (job #2437623) | Cod sursa (job #206203) | Cod sursa (job #769092) | Cod sursa (job #2981950)
#include <iostream>
#include <fstream>
#include <array>
using namespace std;
ifstream in ("flip.in");
ofstream out ("flip.out");
int main ()
{
long int matrix[16][16] = { 0 };
short N = 0, M = 0;
in >> N >> M;
for (short indexRow = 0; indexRow < M; ++indexRow)
for (short indexColumn = 0; indexColumn < N; ++indexColumn)
in >> matrix[indexRow][indexColumn];
bool needOptimisation = true;
while (needOptimisation) {
needOptimisation = false;
for (short indexRow = 0; indexRow < N; ++indexRow) {
long int sumRow = 0;
for (short indexColumn = 0; indexColumn < M; ++indexColumn)
sumRow += matrix[indexRow][indexColumn];
if (sumRow < 0) {
needOptimisation = true;
for (short indexColumn = 0; indexColumn < M; ++indexColumn)
matrix[indexRow][indexColumn] *= -1;
}
}
for (short indexColumn = 0; indexColumn < M; ++indexColumn) {
long int sumColumn = 0;
for (short indexRow = 0; indexRow < N; ++indexRow)
sumColumn += matrix[indexRow][indexColumn];
if (sumColumn < 0) {
needOptimisation = true;
for (short indexRow = 0; indexRow < N; ++indexRow)
matrix[indexRow][indexColumn] *= -1;
}
}
}
long int sum = 0;
for (short indexRow = 0; indexRow < N; ++indexRow)
for (short indexColumn = 0; indexColumn < M; ++indexColumn)
sum += matrix[indexRow][indexColumn];
out << sum;
return 0;
}