Cod sursa(job #878983)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 14 februarie 2013 21:12:16
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

#define Nmax 17

int mat[Nmax][Nmax];
int st[Nmax];
int SMAX;

int N, M;

void citire(){

    ifstream f("flip.in");

    f >> N >> M;

    for(int i = 1; i <= N; i++)
        for(int j = 1; j <= M; j++)
            f >> mat[i][j];

    f.close();
}

int modul(int a){

    return (a > 0 ? a : (-1)*a);
}

int suma(){

    int s = 0 , S = 0;

    for(int i = 1; i <= N; i++){

        int s = 0;

        for(int j = 1; j <= M; j++)
            s += mat[i][j] * st[j];

        S += modul(s);
    }

    return S;
}

void back(int k){

    if(k == M+1){

        SMAX = (SMAX > suma() ? SMAX : suma());
    }
    else{

            st[k] = -3;

            while(st[k] + 2 <= 1){

                st[k] += 2;
                back(k+1);
            }
    }
}

void afis(){

    ofstream g("flip.out");

    g << SMAX << "\n";
}

int main(){

    citire();
    back(1);
    afis();

    return 0;
}