Pagini recente » Cod sursa (job #1012980) | Cod sursa (job #910562) | Istoria paginii utilizator/malinutza_sweet | Istoria paginii runda/hai/clasament | Cod sursa (job #2452113)
#include <iostream>
#include <fstream>
#define NMAX 16
int main() {
std::ifstream in;
std::ofstream out;
int N, M;
int matrix[NMAX][NMAX];
int matrix2[NMAX][NMAX];
int sum = 0, sum_poz = 0, sum_neg = 0, sum2 =0;
in.open("flip.in");
in >> N;
in >> M;
out.open("flip.out");
for (int i = 0 ; i < N ; i++) {
sum_poz = sum_neg = 0;
for (int j = 0; j < M; j++) {
in >> matrix[i][j];
matrix2[i][j] = 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];
}
}
}
for (int j = 0 ; j < M ; j++) {
sum_poz = sum_neg = 0;
for (int i = 0; i < N; i++) {
in >> matrix2[i][j];
if (matrix2[i][j] > 0){
sum_poz += matrix2[i][j];
} else {
sum_neg += matrix2[i][j];
}
}
if ((0 - sum_neg) > sum_poz){
for(int i = 0; i < N; i++) {
matrix2[i][j] = 0 - matrix2[i][j];
}
}
}
for (int i = 0; i< N; i++) {
sum_poz = sum_neg = 0;
for (int j = 0; j< M; j++){
if (matrix2[i][j] > 0){
sum_poz += matrix2[i][j];
} else {
sum_neg += matrix2[i][j];
}
}
if ((0 - sum_neg) > sum_poz) {
for(int j = 0; j < M; j++) {
matrix2[i][j] = 0 - matrix2[i][j];
}
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
sum += matrix[i][j];
sum2 +=matrix2[i][j];
}
}
if (sum2 > sum) {
out << sum2;
} else {
out << sum;
}
in.close();
out.close();
return 0;
}