Pagini recente » Cod sursa (job #2666248) | Cod sursa (job #3165603) | Borderou de evaluare (job #2308443) | Borderou de evaluare (job #844945) | Cod sursa (job #3262910)
#include <iostream>
#include <fstream>
#include <vector>
std::ifstream fin("flip.in");
std::ofstream fout("flip.out");
int N, M;
int main() {
fin >> N >> M;
std::vector<std::vector<int>> a(N, std::vector<int>(M));
int suma = 0;
// Citire și calculare sumă inițială
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
fin >> a[i][j];
suma += a[i][j];
}
}
// Procesare linii
for (int i = 0; i < N; i++) {
int sumaLinie = 0;
for (int j = 0; j < M; j++)
sumaLinie += a[i][j];
if (sumaLinie < 0) {
for (int j = 0; j < M; j++) {
a[i][j] *= -1;
suma += 2 * a[i][j];
}
}
}
// Procesare coloane
for (int j = 0; j < M; j++) {
int sumaColoana = 0;
for (int i = 0; i < N; i++)
sumaColoana += a[i][j];
if (sumaColoana < 0) {
for (int i = 0; i < N; i++) {
a[i][j] *= -1;
suma += 2 * a[i][j];
}
}
}
fout << suma;
fin.close();
fout.close();
return 0;
}