Pagini recente » Cod sursa (job #646908) | Cod sursa (job #2274908) | Cod sursa (job #134136) | Cod sursa (job #2731784) | Cod sursa (job #2043880)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int lines, cols, sumMax;
short stack[20];
int matrix[20][20];
void back(int level);
int matrixSum();
int main() {
fin >> lines >> cols;
for (int l = 1; l <= lines; ++l)
for (int c = 1; c <= cols; ++c)
fin >> matrix[l][c];
back(1);
fout<<sumMax;
return 0;
}
void back(int level) {
if (level == cols + 1) {
sumMax = max(sumMax, matrixSum());
return;
}
stack[level] = 1;
back(level + 1);
stack[level] = -1;
back(level + 1);
}
int matrixSum() {
int sum = 0;
for (int l = 1; l <= lines ; ++l) {
int tempSum = 0;
for (int c = 1; c <= cols; ++c) {
tempSum += stack[c] * matrix[l][c];
}
sum += abs(tempSum);
}
return sum;
}