Pagini recente » Cod sursa (job #184831) | Cod sursa (job #2058072) | Cod sursa (job #2865618) | Cod sursa (job #2938016) | Cod sursa (job #1464145)
#include<cstdio>
#include<ctime>
#include<cstdlib>
using namespace std;
int v[50010],sg[50010];
struct chestie{int val,poz;};
chestie p[50010],m[50010],aux;
int main(){
freopen("semne.in","r",stdin);
freopen("semne.out","w",stdout);
int n,i,x,nrp,nrm=0;
long long s,sum=0;
scanf("%d%lld",&n,&s);
for(i=1;i<=n;i++){
scanf("%d",&v[i]);
p[i].val=v[i];
p[i].poz=i;
sum+=v[i];
}
nrp=n;
srand(time(0));
while(sum!=s)
if(sum>s){
x=rand()%nrp+1;
nrm++;
m[nrm]=p[x];
sum-=2*p[x].val;
nrp--;
for(i=x;i<=nrp;i++)
p[i]=p[i+1];
}
else{
x=rand()%nrm+1;
nrp++;
p[nrp]=m[x];
sum+=2*m[x].val;
nrm--;
for(i=x;i<=nrm;i++)
m[i]=m[i+1];
}
for(i=1;i<=nrp;i++)
sg[p[i].poz]=1;
for(i=1;i<=n;i++)
if(sg[i]==1)
printf("+");
else
printf("-");
return 0;
}