Cod sursa(job #2692608)

Utilizator PredescuSebastianIonPredescu Sebastian Ion PredescuSebastianIon Data 3 ianuarie 2021 12:29:59
Problema Semne Scor 55
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>

using namespace std;
ifstream f("semne.in");
ofstream g("semne.out");
const int nmax=5*1e3+1;
int n;
char v[nmax];
long long a[nmax],suma,s;
bool solve(long long sum,int n)
{
    if(sum<s)return false;
    if(sum==s)return true;
    for(int i=n;i>=0;i--)
    {
        v[i]='-';
        if(solve(sum-2*a[i],i-1))return true;
        v[i]='+';
    }
    return false;
}
int main()
{
    f>>n>>s;
    for(int i=0;i<n;i++)
    {
        f>>a[i];
        suma+=a[i];
        v[i]='+';
    }
    solve(suma,n-1);
    g<<v<<"\n";
    return 0;
}