Pagini recente » Cod sursa (job #3251119) | Cod sursa (job #2481877) | Cod sursa (job #738236) | Cod sursa (job #2829674) | Cod sursa (job #1660797)
#include <stdio.h>
enum {
NMAX = 16,
MMAX = 16
};
static int N, M, SMAX;
static int TABLE[NMAX][MMAX];
static int FillBits(int n)
{
int i, x = 0;
for (i = 0; i < n; ++i) {
x += 1 << i;
}
return x;
}
static void CalcSum(int p1, int p2)
{
int i, j, k, sum = 0;
for (i = 0; i < N; ++i) {
for (j = 0; j < M; ++j) {
k = (p1 >> i & 1) && (p2 >> j & 1);
if (k) {
sum += -TABLE[i][j];
} else {
sum += TABLE[i][j];
}
}
}
SMAX = SMAX < sum ? sum : SMAX;
}
int main(void)
{
int i, j, p1max, p2max;
freopen("flip.in", "r", stdin);
freopen("flip.out", "w", stdout);
SMAX = 1 << 31;
scanf("%i%i", &N, &M);
for (i = 0; i < N; ++i) {
for (j = 0; j < M; ++j) {
scanf("%i", &TABLE[i][j]);
}
}
p1max = FillBits(N);
p2max = FillBits(M);
for (i = 0; i <= p1max; ++i) {
for (j = 0; j <= p2max; ++j) {
CalcSum(i, j);
}
}
printf("%i\n", SMAX);
return 0;
}