Pagini recente » Cod sursa (job #267747) | Cod sursa (job #2676825) | Cod sursa (job #1178105) | Cod sursa (job #1931535) | Cod sursa (job #3158526)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin ("flip.in");
ofstream fout("flip.out");
int main() {
int N, M;
fin >> N >> M;
vector<vector<int>> board(N, vector<int>(M));
vector<int> rowSum(N, 0);
vector<int> colSum(M, 0);
// Citim configuratia tablei de joc
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
fin >> board[i][j];
rowSum[i] += abs(board[i][j]);
colSum[j] += abs(board[i][j]);
}
}
int maxSum = 0;
// Începem să comutăm linii și coloane pentru a maximiza suma
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
int currentSum = 0;
if (i % 2 == 0) {
currentSum = rowSum[i] + colSum[j] - 2 * abs(board[i][j]);
} else {
currentSum = rowSum[i] + colSum[j];
}
maxSum = max(maxSum, currentSum);
}
}
fout << maxSum << endl;
return 0;
}