Pagini recente » Cod sursa (job #1365501) | Cod sursa (job #2611595) | Cod sursa (job #2563162) | Rating Niculae Adrian-Ioan (xxUnrealUxx) | Cod sursa (job #1233307)
#include <cstdio>
#include <ctime>
#include <cstdlib>
#include <queue>
#define Nmax 50005
using namespace std;
queue <int> Minus,Plus;
int a[Nmax],sol[Nmax];
int main()
{
int N,i,r,x;
long long S,suma=0;
srand(time(0));
freopen ("semne.in","r",stdin);
freopen ("semne.out","w",stdout);
scanf("%d%lld", &N,&S);
for(i=1;i<=N;++i)
{
scanf("%d", &a[i]);
r=rand()%2;
if(!r)
{
suma+=a[i];
Plus.push(i);
}
else
{
suma-=a[i];
Minus.push(i);
}
}
while(suma!=S)
{
if(suma<S)
{
x=Minus.front(); Minus.pop();
suma=suma+2*a[x]; Plus.push(x);
}
else
{
x=Plus.front(); Plus.pop();
suma=suma-2*a[x]; Minus.push(x);
}
}
while(!Minus.empty())
{
x=Minus.front(); Minus.pop();
sol[x]=0;
}
while(!Plus.empty())
{
x=Plus.front(); Plus.pop();
sol[x]=1;
}
for(i=1;i<=N;++i)
if(!sol[i]) printf("-");
else printf("+");
printf("\n");
return 0;
}