Pagini recente » Cod sursa (job #2275659) | Cod sursa (job #1673516) | Cod sursa (job #2171568) | Cod sursa (job #373844) | Cod sursa (job #867047)
Cod sursa(job #867047)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int n, m, **mat;
unsigned int i, j, k;
int max = 0;
freopen("flip.in", "r", stdin);
freopen("flip.out", "w", stdout);
scanf("%d %d", &n, &m);
mat = malloc((n + 1) * sizeof(*mat));
for (i = 0; i < n; i ++) {
mat[i] = malloc((m + 1) * sizeof(*mat[i]));
}
for (i = 0; i < n; i ++) {
for (j = 0; j < m; j ++) {
scanf("%d", &mat[i][j]);
}
}
for (i = 0; i < ((1 << (n + m)) - 1); i ++)
{
int sum = 0;
for (j = 0; j < n; j ++) {
for (k = 0; k < n; k ++) {
int flip_line = i & (1 << j) ? 1 : 0,
flip_col = i & (1 << (n + k)) ? 1 : 0;
if (flip_col ^ flip_line)
sum -= mat[j][k];
else
sum += mat[j][k];
}
}
if (sum > max)
max = sum;
}
printf("%d\n", max);
return 0;
}