Pagini recente » Cod sursa (job #506402) | Cod sursa (job #573812) | Cod sursa (job #2413737) | Cod sursa (job #2386117) | Cod sursa (job #2255958)
#include <fstream>
using namespace std;
int n, m; //matrix dimension
int sum_max;
int matrix[17][17];
int sumMatrixElements();
void switchRowColElements(int val, bool elem); // elem true is row and elem false is column
bool compareSumMax(int sumValue);
ifstream fin ("flip.in");
ofstream fout ("flip.out");
int main() {
fin>>n>>m; //read matrix dimensions
for(int i = 0; i < n; i++ ) {
for(int j = 0; j < m; j++ ){
fin>>matrix[i][j];
}
}
int sum_matrix_partial = 0;
for(int i = 0; i < m; i++) {
switchRowColElements(i, false);
//BKT(0);
for( int j = 0; j < n; j++ ) {
switchRowColElements(j, true);
sum_matrix_partial = sumMatrixElements();
if(compareSumMax(sum_matrix_partial)) {
sum_max = sum_matrix_partial;
}
switchRowColElements(j, true);
}
switchRowColElements(i, false);
}
fout<<sum_max;
return 0;
}
bool compareSumMax(int sumValue) {
return sumValue > sum_max ? 1 : 0;
}
void switchRowColElements(int val, bool elem) {
int i;
if( elem ) {
for( i = 0; i < m; i++) {
matrix[val][i] = (-1) * matrix[val][i];
}
} else if( !elem ){
for( i = 0; i < n; i++) {
matrix[i][val] = (-1) * matrix[i][val];
}
}
}
int sumMatrixElements() {
int sum_Matrix = 0;
for(int i = 0; i < n; i++ ) {
for(int j = 0; j < m; j++ ){
sum_Matrix += matrix[i][j];
}
}
return sum_Matrix;
}