Pagini recente » Cod sursa (job #1055881) | Cod sursa (job #1072073) | Cod sursa (job #2690376) | Cod sursa (job #1229143) | Cod sursa (job #1765444)
#include <fstream>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
int n, m;
int mat[17][17];
bool sol[17];
int smax = -2147483647;
void prelucrare() {
int stot = 0;
for(int i = 0; i < n; i++) {
int sl = 0;
for(int j = 0; j < m; j++) {
if(sol[j])
sl -= mat[i][j];
else
sl += mat[i][j];
}
if(sl < 0)
sl = -sl;
stot += sl;
}
if(stot > smax)
smax = stot;
}
void backtrack(int p) {
if(p == m) {
prelucrare();
return;
}
sol[p] = false;
backtrack(p+1);
sol[p] = true;
backtrack(p+1);
}
int main() {
in>>n>>m;
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
in>>mat[i][j];
backtrack(0);
out<<smax;
return 0;
}