Cod sursa(job #1091089)

Utilizator StexanIarca Stefan Stexan Data 23 ianuarie 2014 16:01:58
Problema Jocul Flip Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#define NMAX 20
using namespace std;

ifstream f("flip.in");
ofstream g("flip.out");

int N,M,Matrix[NMAX][NMAX],X[NMAX],MaxSum;

void Read(){
    f>>N>>M;
    for (int i = 1; i <= N; i++) {
        for (int j = 1; j <= M; j++) {
            f>>Matrix[i][j];
        }
    }
}

void Compute(int k){
    int ColumnSum, RetainedSum = 0;
    for (int i = 1; i <= N; i++) {
        ColumnSum = 0;
        for (int j = 1; j <= M; j++) {
            ColumnSum += Matrix[i][j] * X[j];
        }
        if (ColumnSum < 0) {
            ColumnSum *= -1;
        }
        RetainedSum += ColumnSum;
    }
    if (RetainedSum > MaxSum) {
        MaxSum = RetainedSum;
    }
}

void Back(int k)
{
    for (int i = -1; i <= 1; i+=2) {
        X[k] = i;
        if(!(k == N)){
            Back(k+1);
        }else{
            Compute(k);
        }
    }
    
}

void Solve(){
    Back(1);
}

void Write(){
    g<<MaxSum;
}

int main()
{
    Read();
    Solve();
    Write();
    return 0;
}