Pagini recente » Cod sursa (job #3266957) | Cod sursa (job #1342847) | Cod sursa (job #1940860) | Cod sursa (job #2648341) | Cod sursa (job #3301681)
#include <cstdio>
int n, m, a[16][16], c[16], best = -(int) 1e9;
void bkt(int p) {
if (p == m) {
int t = 0;
for (int i = 0; i < n; i++) {
t += (c[i] > 0) ? c[i] : -c[i];
}
best = (t > best) ? t : best;
return;
}
for (int i = 0; i < n; i++) {
c[i] += a[i][p];
}
bkt(p + 1);
for (int i = 0; i < n; i++) {
c[i] -= 2 * a[i][p];
}
bkt(p + 1);
for (int i = 0; i < n; i++) {
c[i] += a[i][p];
}
}
int main() {
freopen ("flip.in", "r", stdin), freopen ("flip.out", "w", stdout);
scanf("%d %d", &n, &m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &a[i][j]);
}
}
bkt(0);
printf("%d\n", best);
}