Pagini recente » Cod sursa (job #973987) | Cod sursa (job #1583583) | Cod sursa (job #198009) | Cod sursa (job #2814747) | Cod sursa (job #1731071)
#include <iostream>
#include <fstream>
using namespace std;
#define NMAX 17
int mat[NMAX][NMAX];
int sumaLinie[NMAX];
int sumaColoana[NMAX];
int main()
{
ifstream fin("flip.in");
ofstream fout("flip.out");
int n, m;
fin >> n >> m;
int sumaMatrice = 0;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
fin >> mat[i][j];
sumaMatrice += mat[i][j];
sumaLinie[i] += mat[i][j];
sumaColoana[j] += mat[i][j];
}
}
int sumaMax = sumaMatrice;
for (int i = 0; i < (1 << n); ++i) {
int sumaCurenta = sumaMatrice;
for (int j = 0; j < n; ++j) {
if (i & (1 << j)) {
sumaCurenta -= 2 * sumaLinie[n - j];
}
}
for (int j = 1; j <= m; ++j) {
int sumaAux = sumaCurenta;
sumaAux -= 2 * sumaColoana[j];
for (int x = 0; x < n; ++x) {
if (i & (1 << x)) {
sumaAux += 4 * mat[n - x][j];
}
}
sumaCurenta = max(sumaCurenta, sumaAux);
}
sumaMax = max(sumaMax, sumaCurenta);
}
fout << sumaMax << "\n";
return 0;
}