Pagini recente » Cod sursa (job #2490767) | Cod sursa (job #3030871) | Cod sursa (job #2595210) | Cod sursa (job #2570367) | Cod sursa (job #2051928)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("flip.in");
ofstream fout ("flip.out");
void back(int k);
const int Dim = 17;
int A[Dim][Dim] , n, m , ma = -100000000 , 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(0);
fout << ma;
}
int suma() {
int S = 0;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
S += A[i][j];
return S;
}
void back(int k ) {
for(int i = k + 1; i <= n; i++) {
for(int j = 1; j <= m; j++)
A[i][j] *= -1;
back(i+1);
}
for(int j = 1; j <= m; j++) {
int ss = 0;
for(int i = 1; i <= n ;i++)
ss += A[i][j];
if(ss < 0)
for(int i = 1; i <= n ;i++)
A[i][j] *= -1;
}
ma = max(ma,suma());
}