Pagini recente » Cod sursa (job #2878566) | Cod sursa (job #1823979) | Cod sursa (job #403739) | Cod sursa (job #98982) | Cod sursa (job #1180064)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int n,m, currentSum = 0, hasNegative = false;
ifstream in;
ofstream out;
in.open("flip.in");
out.open("flip.out");
in>>n;
in>>m;
int mat[n][m];
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++) {
in>>mat[i][j];
currentSum += mat[i][j];
if (mat[i][j] < 0) {
hasNegative = true;
}
}
if (hasNegative == true) {
for (int j = 0; j < m; j++) {
int normalSum = 0, flipSum = 0;
for (int i = 0; i < n; i++) {
normalSum += mat[i][j];
flipSum += (-mat[i][j]);
}
if (flipSum > normalSum) {
currentSum -= normalSum;
currentSum += flipSum;
for (int i = 0; i < n; i++) {
mat[i][j] = -mat[i][j];
}
}
}
for (int i = 0; i < n; i++) {
int normalSum = 0, flipSum = 0;
for (int j = 0; j < m; j++) {
normalSum += mat[i][j];
flipSum += (-mat[i][j]);
}
if (flipSum > normalSum) {
currentSum -= normalSum;
currentSum += flipSum;
for (int j = 0; j < m; j++) {
mat[i][j] = -mat[i][j];
}
}
}
out<<currentSum;
}
else {
out<<currentSum;
}
in.close();
out.close();
}