Cod sursa(job #2602104)

Utilizator PMI13Pop Marius Ionut PMI13 Data 15 aprilie 2020 20:47:44
Problema Jocul Flip Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

FILE *fin, *fout;

#define MAX_N 17
#define MAX_M 17

int n, m, num[MAX_N][MAX_M];

void read(void)
{
    int i, j;
    fscanf(fin, "%d%d", &n, &m);
    for (i = 0; i < n; ++i) {
        for (j = 0; j < m; ++j) {
            fscanf(fin, "%d", num[i] + j);
        }
    }
}

int solve(void)
{
    int c, i, j, lsum, csum, bsum;
    bsum = -999999;
    for (c = 0; c < (1 << n); ++c) {
        csum = 0;
        for (i = 0; i < m; ++i) {
            lsum = 0;
            for (j = 0; j < n; ++j) {
                if((1 << j) & c)
                    lsum += num[j][i];
                else
                    lsum -= num[j][i];
                ///lsum += (((1 << j) & c) ? 1 : -1) * num[j][i];
            }
            if(lsum < 0)
                lsum = -lsum;
            csum += lsum;           /// < 0 ? -lsum : lsum;
            ///fprintf(fout, "%d ", lsum < 0 ? -lsum : lsum);
        }
        ///fprintf(fout, "\n\n");
        if (csum > bsum) {
            bsum = csum;
        }
    }
    return bsum;
}

int main(void)
{
    fin = fopen("flip.in", "r");
    fout = fopen("flip.out", "w");
    read();
    fprintf(fout, "%d\n", solve());
    fclose(fin);
    fclose(fout);
    return 0;
}