Cod sursa(job #1628183)

Utilizator razvandRazvan Dumitru razvand Data 3 martie 2016 21:41:34
Problema Semne Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <stdlib.h>
#include <bitset>
using namespace std;

#define Nmax 50002

ifstream in("semne.in");
ofstream out("semne.out");

int N, v[Nmax];
bitset<Nmax> s;
long long S, Now;

void bkt ( int poz ){

    if ( Now != S ){
        int i = poz;

        while ( i > 0 ){

            s[i] = 1;
            Now -= 2 * v[i];

            if ( Now >= S )
                bkt ( i - 1 );

            s[i] = 0;
            Now += 2 * v[i];
            i--;

        }
    }
    else {
        for(int i = 1; i <= N; i++) {
            if(s[i])
                out << '-';
            else
                out << '+';
        }
        exit(EXIT_SUCCESS);
    }

}

int main(){

    in >> N >> S;

    for ( int i = 1; i <= N; ++i ){
        in >> v[i];
        Now += v[i];
    }

    bkt ( N );

    End:
    return 0;
}