Pagini recente » Cod sursa (job #2322688) | Cod sursa (job #2839454) | Cod sursa (job #1549747) | Cod sursa (job #2534036) | Cod sursa (job #3132341)
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
const int ROWS_MAX = 16;
const int COLUMNS_MAX = 16;
int m[ROWS_MAX][COLUMNS_MAX], sumCol[COLUMNS_MAX];
char rowSign[ROWS_MAX];
int abs(int x) {
return (x > 0) ? x : -x;
}
int main() {
int rows, columns, sum, sum_max = 0;
fin >> rows >> columns;
for(int r = 0; r < rows; ++r)
for(int c = 0; c < columns; ++c){
fin >> m[r][c];
sum_max += m[r][c];
}
for(int rsubset = 1; rsubset < (1 << rows); ++rsubset){
for(int i = 0; i < rows; ++i)
rowSign[i] = (rsubset & (1 << i)) ? -1 : 1;
for(int c = 0; c < columns; ++c)
sumCol[c] = 0;
for(int r = 0; r < rows; ++r)
for(int c = 0; c < columns; ++c)
sumCol[c] += rowSign[r] * m[r][c];
sum = 0;
for(int c = 0; c < columns; ++c)
sum += abs(sumCol[c]);
if(sum > sum_max)
sum_max = sum;
}
fout << sum_max << '\n';
fin.close();
fout.close();
return 0;
}