Pagini recente » Cod sursa (job #326080) | Cod sursa (job #352420) | Cod sursa (job #2968270) | Cod sursa (job #1079511) | Cod sursa (job #52146)
Cod sursa(job #52146)
#include <stdio.h>
#define NMAX 16
int n, m, t[NMAX][NMAX];
int s, smax;
int on[NMAX], copy[NMAX][NMAX];
void gen(int k) {
if (k == n) {
int i, j, scol;
s = 0;
for (i = 0; i < n; ++i) {
if (on[i])
for (j = 0; j < m; ++j) {
copy[i][j] = -t[i][j];
s += copy[i][j];
}
else
for (j = 0; j < m; ++j) {
copy[i][j] = t[i][j];
s += copy[i][j];
}
}
for (j = 0; j < m; ++j) {
scol = 0;
for (i = 0; i < n; ++i)
scol += copy[i][j];
if (scol < 0)
s -= 2*scol;
}
if (smax < s)
smax = s;
}
else {
on[k] = 0;
gen(k+1);
on[k] = 1;
gen(k+1);
}
}
int main() {
int i, j;
FILE * fi = freopen("flip.in", "r", stdin);
FILE * fo = freopen("flip.out", "w", stdout);
scanf("%d%d", &n, &m);
for (i = 0; i < n; ++i)
for (j = 0; j < m; ++j)
scanf("%d", &t[i][j]);
gen(0);
printf("%d", smax);
return 0;
}