Cod sursa(job #1321087)

Utilizator Aleks10FMI - Petrache Alex Aleks10 Data 18 ianuarie 2015 19:24:23
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul II Marime 0.92 kb
//
//  main.cpp
//  flip
//
//  Created by Alex Petrache on 18/01/15.
//  Copyright (c) 2015 Alex Petrache. All rights reserved.
//

#include <fstream>
using namespace std;
ifstream f("flip.in");
int N, M, sol, V[26][26], A[26];

inline void Verif()
{
    int S = 0;
    for (int i=1; i<=N; i++)
    {
        int s = 0;
        for (int j=1; j<=M; j++)
        {
            if (A[j]) s -= V[i][j];
            else      s += V[i][j];
        }
        if (s < 0) S -= s;
        else       S += s;
    }
    if (S > sol)
        sol = S;
}

inline void bk(int k)
{
    if (k == M)
    {
        Verif();
    }
    else
    {
        for (int i=0; i<=1; i++)
        {
            A[k] = i;
            bk(k + 1);
        }
    }
}

int main()
{
    ofstream g("flip.out");
    f >> N >> M;
    for (int i=1; i<=N; i++)
        for (int j=1; j<=M; j++)
            f >> V[i][j];
    
    bk(1);
    
    g << sol << '\n';
    return 0;
}