Pagini recente » Cod sursa (job #2418757) | Cod sursa (job #2194590) | Cod sursa (job #1004480) | Cod sursa (job #1165733) | Cod sursa (job #1539661)
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
bool u[16];
int n, m, sol;
int a[16][16], sumc[16];
int suma(){
int result = 0;
for (int j = 0; j < m; j++){
if (sumc[j] > 0){
result += sumc[j];
} else {
result -= sumc[j];
}
}
return result;
}
void sumac(){
for (int j = 0; j < m; j++){
sumc[j] = 0;
for (int i = 0; i < n; i++){
sumc[j] += (u[i] == 1 ? 1 : -1) * a[i][j];
}
}
}
void backtrack(int k){
if (k == n){
sumac();
sol = max(sol, suma());
} else {
for (int i = 0; i <= 1; i++){
u[k] = i;
backtrack(k+1);
}
}
}
int main(){
fin >> n >> m;
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++){
fin >> a[i][j];
}
}
backtrack(0);
fout << sol << "\n";
return 0;
}