Pagini recente » Cod sursa (job #539274) | Cod sursa (job #2704396) | Cod sursa (job #3132994) | Cod sursa (job #520096) | Cod sursa (job #1505350)
#include<stdio.h>
int m, n, st[40] = { 0,1,0,1,0 };
long int v[20][20], copie[20][20], MAX;
int suma() {
int s = 0, x, y;
for (x = 0; x < n; x++)
for (y = 0; y < m; y++) {
if (copie[x][y] == 1) s += -1 * v[x][y];
else s += v[x][y];
}
return s;
}
void flip() {
int i, j, k = 0, l;
for (i = n - 1; i >= 0; i--) {
l = 0;
for (j = n; j < m + n; j++) {
copie[k][l] = st[i] ^ st[j];
++l;
};
++k;
}
}
void maxim() {
int i, x, j;
flip();
x = suma();
if (x > MAX) MAX = x;
}
void back(int p) {
int val;
for (val = 0; val < 2; val++) {
st[p] = val;
if (p == m + n - 1) maxim();
else back(p + 1);
}
}
int main() {
freopen("flip.in", "r", stdin);
freopen("flip.out", "w", stdout);
scanf("%d", &n);
scanf("%d", &m);
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
scanf("%d", &v[i][j]);
}
};
back(0);
printf("%d", MAX);
return 0;
}