Pagini recente » Cod sursa (job #1278771) | Cod sursa (job #322366) | Cod sursa (job #2496324) | Cod sursa (job #1093917) | Cod sursa (job #2292920)
#include <bits/stdc++.h>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
vector<vector<int>> matrix(16, vector<int>(16));
int calculateSum(vector<vector<int>> matrix){
int sum = 0;
for (vector<int> v: matrix){
for (int item : v)
sum += item;
}
return sum;
}
int calculateVect(vector<int> vect){
int sum = 0;
for (int item : vect){
sum += item;
}
return sum;
}
int main(){
int n, m, max_sum = 0, tempSum = 0;
vector<vector<int>> temp;
in >> n >> m;
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++){
in >> matrix[i][j];
}
}
max_sum = calculateSum(matrix);
temp = matrix;
for (int i = 0; i < n; i++){
vector<int> of;
for (int j = 0; j < m; j++){
of.push_back(temp[i][j]);
}
tempSum = calculateVect(of);
if ((tempSum * -1) > tempSum){
for (int j = 0; j < m; j++){
if(temp[i][j] == matrix[i][j])
temp[i][j] *= -1;
}
}
}
for (int i = 0; i < m; i++){
vector<int> of;
for (int j = 0; j < n; j++){
of.push_back(temp[j][i]);
}
tempSum = calculateVect(of);
if ((tempSum * -1) > tempSum){
for (int j = 0; j < n; j++){
if(temp[j][i] == matrix[j][i])
temp[j][i] *= -1;
}
}
}
out << max(max_sum, calculateSum(temp)) << endl;
return 0;
}