Cod sursa(job #1608683)

Utilizator eustatiuDima Eustatiu eustatiu Data 22 februarie 2016 11:51:53
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <stdio.h>
#include <stdlib.h>


int m, n, s_max = -1;
int mat[16][16], v[16];

int inline abs(const int x) { return x > 0 ? x : (-1) *x; }
int inline max(const int &a,const int &b) { return a > b ? a : b; }

void inline sum() {
    int i, j, s, suma = 0;
    for ( j = 0; j < m; j++ ) {
        s = 0;
        for ( i = 0; i < n; i++ )
            s += mat[i][j] * v[i];
        suma += abs(s);
    }
    s_max = max(suma,s_max);
}

void inline flip(const int& k) {
    if ( k == n )
        sum();
    else {
        v[k] = -1;
        flip(k+1);
        v[k] = 1;
        flip(k+1);
    }
}

int  main()
{
    freopen("flip.in","r",stdin);
    freopen("flip.out","w",stdout);

    scanf("%d %d",&n,&m);
    int i, j;
    for ( i = 0; i < n; i++ )
        for ( j = 0; j < m; j++ )
            scanf("%d",&mat[i][j]);
    flip(0);
    printf("%d",s_max);

    return 0;
}