Cod sursa(job #1453666)

Utilizator bogdan.balanBogdan Balan bogdan.balan Data 24 iunie 2015 07:29:51
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define FOR(i, a, b) for(i = a; i < b; ++i)
#define maxim(a,b) (a > b ? a : b)

int m, n, array[16][16], arr[16], ans;

int summ(){
    int sum, i, j, best = 0;
    FOR(i, 0, m){
        sum = 0;
        FOR(j, 0, n)
            sum += array[i][j] * arr[j];
        best += maxim(sum, -sum);
    }
    return best;

}

void solve(int k){
    if(k == n){
        ans = maxim(ans , summ());
        return;
    }

    arr[k] = 1;
    solve(k+1);
    arr[k] = -1;
    solve(k+1);
}


int main(){

    int i, j;

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

    scanf("%d", &m); scanf("%d", &n);

    FOR(i, 0, m) FOR(j, 0, n) scanf("%d", &array[i][j]);

    solve(0);

    printf("%d", ans);

    return 0;
}