Pagini recente » Cod sursa (job #243631) | Cod sursa (job #2594551) | Cod sursa (job #2739939) | Cod sursa (job #3194038) | Cod sursa (job #3131468)
#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];
char rowSign[ROWS_MAX], columnSign[COLUMNS_MAX];
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 csubset = 0; csubset < (1 << columns); ++csubset){
for(int i = 0; i < columns; ++i)
columnSign[i] = (csubset & (1 << i)) ? -1 : 1;
sum = 0;
for(int r = 0; r < rows; ++r)
for(int c = 0; c < columns; ++c)
sum += rowSign[r] * columnSign[c] * m[r][c];
if(sum > sum_max)
sum_max = sum;
}
}
fout << sum_max << '\n';
fin.close();
fout.close();
return 0;
}