Pagini recente » Cod sursa (job #261428) | Cod sursa (job #570792) | Cod sursa (job #627985) | Cod sursa (job #162759) | Cod sursa (job #2897446)
#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 n, m;
int32_t a[17][17];
int32_t sc[17];
int32_t sl[17];
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);
sl[i] += a[i][j];
sc[j] += a[i][j];
}
}
}
fclose(in);
}
while (1) {
/*{
int32_t i, j;
for (i = 0; i <= n; ++i) {
for (j = 0; j <= m; ++j) {
if (j == 0) {
if (i == 0) {
fprintf(stdout, "%2i| ", 0);
} else {
fprintf(stdout, "%2i| ", sl[i - 1]);
}
} else if (i == 0) {
fprintf(stdout, "%2i ", sc[j - 1]);
} else {
fprintf(stdout, "%2i ", a[i - 1][j - 1]);
}
}
fprintf(stdout, "\n");
}
}*/
int32_t i;
int32_t mi = 0;
int32_t mii = 0;
for(i = 0; i < n; ++i) {
if (sc[i] < mi) {
mi = sc[i];
mii = i;
}
}
for(i = 0; i < m; ++i) {
if (sl[i] < mi) {
mi = sl[i];
mii = 16 + i;
}
}
if (mi == 0) {
//fprintf(stdout, "Breaking\n");
break;
}
//fprintf(stdout, "Found mii: %u\n", mii);
if (mii < 16) {
sc[mii] = -sc[mii];
for (i = 0; i < m; ++i) {
a[i][mii] = -a[i][mii];
sl[i] += 2 * a[i][mii];
}
} else {
mii -= 16;
sl[mii] = -sl[mii];
for (i = 0; i < n; ++i) {
a[mii][i] = -a[mii][i];
sc[i] += 2 * a[mii][i];
}
}
}
{
FILE *__restrict out = fopen("flip.out", "w");
int32_t sum = 0;
{
int32_t i;
for(i = 0; i < 16; ++i) {
sum += sc[i];
}
}
fprintf(out, "%i\n", sum);
fclose(out);
}
return 0;
}