Pagini recente » Cod sursa (job #2611995) | Cod sursa (job #1142047) | Cod sursa (job #1082540) | Cod sursa (job #2645343) | Cod sursa (job #2446398)
#include <bits/stdc++.h>
using namespace std;
int n, i, nrm, nrp; char sign[50001];
long long s, pres=0LL, val[50001], pls[50001], mns[50001];
int main()
{
freopen("semne.in", "r", stdin);
freopen("semne.out", "w", stdout);
scanf("%d%lld", &n, &s);
for(i=1; i<=n; ++i){
scanf("%lld", &val[i]);
sign[i]='+';
pres+=val[i];
pls[++nrp]=i;
}
while(pres!=s){
if(pres>s){
i=rand()%nrp+1;
pls[nrp]=pls[i];
pres=pres-2*val[pls[nrp]];
sign[pls[nrp]]='-';
mns[++nrm]=pls[nrp];
--nrp;
}
else{
i=rand()%nrm+1;
mns[nrm]=mns[i];
pres=pres+2*val[mns[nrm]];
sign[mns[nrm]]='+';
pls[++nrp]=mns[nrm];
--nrm;
}
}
for(i=1; i<=n; ++i) printf("%c", sign[i]);
return 0;
}