Pagini recente » Cod sursa (job #831778) | Cod sursa (job #2792355) | Cod sursa (job #2728032) | Cod sursa (job #1884332) | Cod sursa (job #2051541)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("flip.in");
ofstream fout ("flip.out");
void back();
const int Dim = 17;
int A[Dim][Dim] , n, m , ma = -1000000 , s,Sl[Dim] , Sc[Dim];
bool UseL[Dim] = {0}, UseC[Dim] = {0};
int main() {
fin >> n >> m;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
fin >> A[i][j] , s += A[i][j];
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
Sl[i] += A[i][j];
for(int j = 1; j <= m; j++)
for(int i = 1; i <= n; i++)
Sc[j] += A[i][j];
back();
fout << ma;
}
void back() {
ma = max(s, ma);
for(int i = 1; i <= n; i++)
if(!UseL[i]) {
int aux = s;
s += -2* Sl[i];
UseL[i] = true;
back();
s = aux;
UseL[i] = false;
}
for(int j = 1; j <= m; j++)
if(!UseC[j]) {
int aux = s;
s += -2* Sc[j];
UseC[j] = true;
back();
s = aux;
UseC[j] = false;
}
}