Pagini recente » Cod sursa (job #1674640) | Cod sursa (job #2051532)
#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 =-100000000 ;
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];
Back();
fout << ma;
}
int suma() {
int s = 0;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
s += A[i][j];
return s;
}
void Back() {
ma = max(ma,suma());
for(int i = 1; i <= n; i++)
if(UseL[i] == false) {
for(int j = 1; j <= m; j++)
A[i][j] *= -1;
UseL[i] = true;
Back();
UseL[i] = false;
for(int j = 1; j <= m; j++)
A[i][j] *= -1;
}
for(int j = 1; j <= m; j++)
if(UseC[j] == false) {
for(int i = 1; i <= n; i++)
A[i][j] *= -1;
UseC[j] = true;
Back();
UseC[j] = false;
for(int i = 1; i <= n; i++)
A[i][j] *= -1;
}
}