Pagini recente » Cod sursa (job #1716469) | Cod sursa (job #537114) | Cod sursa (job #500896) | Cod sursa (job #3296644) | Cod sursa (job #2452108)
#include <iostream>
#include <fstream>
#define NMAX 16
int main() {
std::ifstream in;
std::ofstream out;
int N, M;
int matrix[NMAX][NMAX];
int sum = 0, sum_poz = 0, sum_neg = 0;
in.open("flip.in");
in >> N;
in >> M;
out.open("flip.out");
if (M > N) {
for (int i = 0 ; i < N ; i++) {
sum_poz = sum_neg = 0;
for (int j = 0; j < M; j++) {
in >> matrix[i][j];
if (matrix[i][j] > 0){
sum_poz += matrix[i][j];
} else {
sum_neg += matrix[i][j];
}
}
if ((0-sum_neg) > sum_poz) {
for(int j = 0; j < M; j++) {
matrix[i][j] = 0-matrix[i][j];
}
}
}
for (int j = 0; j < M; j++) {
sum_poz = sum_neg = 0;
for (int i = 0; i < N; i++) {
if (matrix[i][j] > 0){
sum_poz += matrix[i][j];
} else {
sum_neg += matrix[i][j];
}
}
if ((0-sum_neg) > sum_poz){
for (int i = 0; i < N; i++) {
matrix[i][j] = 0 - matrix[i][j];
}
}
}
} else {
for (int j = 0 ; j < M ; j++) {
sum_poz = sum_neg = 0;
for (int i = 0; i < N; i++) {
in >> matrix[i][j];
if (matrix[i][j] > 0){
sum_poz += matrix[i][j];
} else {
sum_neg += matrix[i][j];
}
}
if ((0 - sum_neg) > sum_poz){
for(int i = 0; i < N; i++) {
matrix[i][j] = 0 - matrix[i][j];
}
}
}
for (int i = 0; i< N; i++) {
sum_poz = sum_neg = 0;
for (int j = 0; j< M; j++){
if (matrix[i][j] > 0){
sum_poz += matrix[i][j];
} else {
sum_neg += matrix[i][j];
}
}
if ((0 - sum_neg) > sum_poz) {
for(int j = 0; j < M; j++) {
matrix[i][j] = 0 - matrix[i][j];
}
}
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
sum += matrix[i][j];
}
}
out << sum;
in.close();
out.close();
return 0;
}