Cod sursa(job #1017241)

Utilizator Alina_MariaMateescu Adina Lenuta Maria Alina_Maria Data 27 octombrie 2013 16:08:41
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <stdio.h>

using namespace std;

int n, m, M[20][20], sScenariu = 0, sMax = 0;
int posibilitate[] = { -1, 1 };
int combinatii[50];

void citireFis() {
    scanf("%d %d", &n, &m);
    for(int i = 0; i < n; ++i)
        for(int j = 0; j < m; ++j)
            scanf("%d", &M[i][j]);
}

void calcSumaScenariu() {
    sScenariu = 0;
    for(int i = 0; i < n; ++i)
        for(int j = 0; j < m; ++j)
            sScenariu += (M[i][j] * combinatii[i] * combinatii[n + j]);
    if (sScenariu > sMax)
        sMax = sScenariu;
}

void backTracking(int k) {
    if(k == n + m) {
        calcSumaScenariu();
    } else {
        for(int i = 0; i < 2; ++i) {
            combinatii[k] = posibilitate[i];
            backTracking(k + 1);
        }
    }
}

int main() {
    freopen("flip.in", "r", stdin);
    freopen("flip.out", "w", stdout);
    citireFis();
    backTracking(0);
    printf("%d", sMax);
    return 0;
}