Cod sursa(job #1337045)

Utilizator A63N7pTudor Nazarie A63N7p Data 8 februarie 2015 15:46:27
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <cstdio>
using namespace std;

FILE *in, *out;
int m, n, x[20][20], smax;

int main(int argc, char *argv[])
{
    int b[20], s, sl, aux, p;

    in = fopen("flip.in", "r");
    out = fopen("flip.out", "w");

    fscanf(in, "%d", &m);
    fscanf(in, "%d", &n);

    for (int i = 1; i <= m; i++)
        for (int j = 1; j <= n; j++)
            fscanf(in, "%d", &x[i][j]);

    p = 1;
    for (int i = 1; i <= n; i++)
        p = p * 2;

    for (int l = 0; l < p; l++) {
        aux = l;

        // aflam submultimea transoformand l in baza 2
        for (int j=1; j<=n; j++)
        {
            b[j] = aux % 2;
            aux = aux / 2;
        }

        s = 0;

        for (int i = 1; i <= m; i++) {
            sl = 0;
            for (int j = 1; j <= n; j++)
                sl = b[j] ? sl - x[i][j] : sl + x[i][j];

            sl = sl < 0 ? -sl : sl;

            s += sl;
        }

        smax = s > smax ? s : smax;
    }

    fprintf(out, "%d\n", smax);

    fclose(out);
    fclose(in);

    return 0;
}