Pagini recente » Cod sursa (job #1705427) | Cod sursa (job #2204689) | Cod sursa (job #2144857) | Cod sursa (job #2570506) | Cod sursa (job #1508793)
#include<stdio.h>
int m, n;
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 z) {
int i, j, k, l;
for (i = 0; i < n; i++) {
k = (z >> m + i) % 2;
for (j = 0; j < m; j++) {
l = (z >> m - j - 1) % 2;
copie[i][j] = k ^ l;
}
};
}
void maxim() {
int x;
x = suma();
if (x > MAX) MAX = x;
}
void preflip() {
int x, i, j, a = 1;
a = a << m + n - 1;
--a;
while (a >= 0) {
flip(a);
maxim();
--a;
}
}
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]);
}
};
preflip();
printf("%d", MAX);
return 0;
}