Pagini recente » Istoria paginii runda/nimic_suspect | Cod sursa (job #176708) | Cod sursa (job #1335043) | Cod sursa (job #1277070) | Cod sursa (job #1667818)
#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 c)
{
int i, j, sign, lsum, sum = 0;
for (i = 0; i < N; ++i) {
lsum = 0;
for (j = 0; j < M; ++j) {
if (c >> j & 1) {
sign = -1;
} else {
sign = 1;
}
lsum += sign * TABLE[i][j];
}
lsum = lsum < 0 ? -lsum : lsum;
sum += lsum;
}
SMAX = sum > SMAX ? sum : SMAX;
}
int main(void)
{
int i, j, c;
freopen("flip.in", "r", stdin);
freopen("flip.out", "w", stdout);
scanf("%i%i", &N, &M);
for (i = 0; i < N; ++i) {
for (j = 0; j < M; ++j) {
scanf("%i", &TABLE[i][j]);
SMAX += TABLE[i][j];
}
}
c = FillBits(M);
for (i = 0; i <= c; ++i) {
CalcSum(i);
}
printf("%i\n", SMAX);
return 0;
}