Pagini recente » Cod sursa (job #1443347) | Cod sursa (job #519714) | Cod sursa (job #1714602) | Cod sursa (job #2473550) | Cod sursa (job #180857)
Cod sursa(job #180857)
#include <stdio.h>
#include <cstdlib>
#include <ctime>
#include <bitset>
using namespace std;
long n,i,a[50005];
long long S,sum,x,y;
bitset <50005>v;
int main(){
freopen("semne.in","r",stdin);
freopen("semne.out","w",stdout);
srand(time(0));
scanf("%ld %lld",&n,&S);
for (i=1;i<=n;i++){
scanf("%ld",&a[i]);
sum+=a[i];
v[i]=1;
}
x=S-sum;
if (x<0)x=-x;
y=S+sum;
if (y<0)y=-y;
if (y>x){
sum=-sum;
for (i=1;i<=n;i++)
v[i]=0;
}
while (sum!=S){
i=rand();
i=i-(i/(n+1))*(n+1);
if (sum>S&&!v[i])continue;
if (sum<S&&v[i])continue;
v[i]=1-v[i];
if (v[i])sum+=a[i]+a[i];
else sum-=a[i]+a[i];
}
for (i=1;i<=n;i++)
if (v[i])printf("+");
else printf("-");
printf("\n");
return 0;
}