Pagini recente » Cod sursa (job #1442527) | Cod sursa (job #2540722) | Cod sursa (job #2306828) | Cod sursa (job #2295913) | Cod sursa (job #1147586)
#include<stdio.h>
#include<ctime>
#include<cstdlib>
#define nmax 50005
long long n, s, i, x, p, pozx, sum[3], ne[3];
long long smn[nmax], mult[3][nmax], v[nmax];
int main()
{
freopen("semne.in","r",stdin);
freopen("semne.out","w",stdout);
srand(time(0));
scanf("%lld %lld",&n,&s);
for (i=1;i<=n;i++)
{
scanf("%lld",&x);
p=((sum[0]-sum[1])>s);
sum[p]+=x;
smn[i]=p;
mult[p][++ne[p]]=i; v[i]=i;
}
while (sum[0]-sum[1]!=s)
{
p=1-((sum[0]-sum[1])>s);
pozx=mult[p][rand()%ne[p]+1]; x=v[pozx];
sum[p]-=x;
sum[1-p]+=x;
smn[pozx]=1-smn[pozx];
}
for (i=1;i<=n;i++)
if (smn[i]==0)
printf("+");
else
printf("-");
return 0;
}