Cod sursa(job #2828062)

Utilizator AndreiBOTOBotocan Andrei AndreiBOTO Data 6 ianuarie 2022 19:49:10
Problema Semne Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <algorithm>
#include <cstring>
#include <fstream>

using namespace std;

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

const int NMAX=50005;
int n;
char semn[NMAX];
long long a[NMAX],suma,s;

int verif(long long sum,int n)
{
    int i;
    if(sum<s)
        return 0;
    if(sum==s)
        return 1;
    for(i=n;i>=0;i--)
    {
        semn[i]='-';
        if(verif(sum-2*a[i],i-1))
            return 1;
        semn[i]='+';
    }
    return 0;
}

int main()
{
    int i;
    fin>>n>>s;
    for(i=0;i<n;i++)
    {
        fin>>a[i];
        suma+=a[i];
        semn[i]='+';
    }
    verif(suma,n-1);
    fout<<semn<<"\n";
    return 0;
}