Cod sursa(job #1733772)

Utilizator alittlezzCazaciuc Valentin alittlezz Data 25 iulie 2016 17:58:43
Problema Semne Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#include <math.h>
#include <algorithm>

using namespace std;
#define ll long long
#define llu long long unsigned
#define pb push_back
#define mp make_pair

string problemName = "semne";
string inFile = problemName+".in";
string outFile = problemName+".out";
ifstream fin(inFile.c_str());
ofstream fout(outFile.c_str());

const int N = 5e4;
int s,v[N+5],cur;
char sol[N+5];
bool solved;

void bkt(int poz){
    if(solved == true){
        return;
    }
    if(cur != s){
        while(poz){
            cur -= 2*v[poz];
            sol[poz] = '-';
            if(cur >= s){
                bkt(poz-1);
            }
            sol[poz] = '+';
            cur += 2*v[poz];
            poz--;
        }
    }else{
        fout<<sol+1;
        solved = true;
    }
}

int main(){
    int n,i;
    solved = false;
    fin>>n>>s;
    for(i = 1;i <= n;i++){
        fin>>v[i];
        cur += v[i];
        sol[i] = '+';
    }
    bkt(n);
    return 0;
}