Pagini recente » Cod sursa (job #1461153) | Cod sursa (job #1065702) | Cod sursa (job #2796175) | Cod sursa (job #1462802) | Cod sursa (job #2897450)
#include <stdio.h>
#include <stdint.h>
void read_int32_t(FILE *__restrict stream, int32_t *__restrict nr) {
uint8_t ch;
int8_t sgn = 1;
*nr = 0;
ch = fgetc(stream);
if (ch == '-') {
sgn = -1;
} else if (('0' <= ch && ch <= '9')) {
*nr = ch - '0';
} else {
return;
}
while ((ch = fgetc(stream)) && ('0' <= ch && ch <= '9')) {
*nr *= 10;
*nr += ch - '0';
}
if (ch == '\r') {
fgetc(stream);
}
*nr *= sgn;
}
int32_t __inline__ __attribute((pure)) max(int32_t o1, int32_t o2) {
return o1 > o2 ? o1 : o2;
}
int32_t n, m;
int32_t a[17][17];
int32_t msum = 0;
void check(int32_t x) {
int32_t i, j;
int32_t clsum = 0;
int32_t csum = 0;
for (i = 0; i < m; ++i) {
clsum = 0;
for (j = 0; j < n; ++j) {
clsum += (x & (1<<j)) ? a[j][i] : -a[j][i];
}
csum += max(clsum, -clsum);
}
msum = max(csum, msum);
}
int main(void) {
{
FILE *__restrict in = fopen("flip.in", "r");
read_int32_t(in, &n);
read_int32_t(in, &m);
{
int32_t i, j;
for (i = 0; i < n; ++i) {
for (j = 0; j < m; ++j) {
read_int32_t(in, a[i] + j);
}
}
}
fclose(in);
}
{
int32_t i;
for(i = 0; i < (1<<n); ++i) {
check(i);
}
}
{
FILE *__restrict out = fopen("flip.out", "w");
fprintf(out, "%i\n", msum);
fclose(out);
}
return 0;
}