Pagini recente » Cod sursa (job #1786401) | Cod sursa (job #70498) | Cod sursa (job #2957265) | Cod sursa (job #1073974) | Cod sursa (job #1779311)
#include <bits/stdc++.h>
using namespace std;
const int Nmax = 50005;
char ans[Nmax];
int a[Nmax], n, i, p[Nmax], m[Nmax], P=0, M=0, x;
long long S;
int main()
{
freopen("semne.in", "r", stdin);
freopen("semne.out", "w", stdout);
srand(time(0));
scanf("%d%lld", &n, &S);
S = -S;
for(i=1; i<=n; ++i)
{
scanf("%d", &a[i]);
if(rand()%2)
{
S += a[i];
p[++P] = i;
}
else
{
S -= a[i];
m[++M] = i;
}
}
while(S)
if(S>0)
{
x = rand()%P + 1;
S -= 2*a[p[x]];
m[++M] = p[x];
swap(p[x], p[P--]);
}
else
{
x = rand()%M + 1;
S += 2*a[m[x]];
p[++P] = m[x];
swap(m[x], m[M--]);
}
for(i=1; i<=P; ++i) ans[p[i]] = '+';
for(i=1; i<=M; ++i) ans[m[i]] = '-';
printf("%s\n", ans+1);
return 0;
}