Pagini recente » Cod sursa (job #1752514) | Cod sursa (job #30504) | Cod sursa (job #2923730) | Cod sursa (job #642105) | Cod sursa (job #2326692)
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int MAXN = 5e4;
int a[MAXN + 1], sign[MAXN + 1];
vector <int> v[2];
int main() {
int n, i;
ll s, k;
freopen ("semne.in", "r", stdin);
freopen ("semne.out", "w", stdout);
scanf ("%d%lld", &n, &k);
s = 0;
for (i = 1; i <= n; i++) {
scanf ("%d", &a[i]);
sign[i] = 1;
v[0].push_back (i);
s = s + a[i];
}
srand (NULL);
while (k != s) {
if (s < k) {
i = rand () % v[1].size ();
int j = v[1][i];
s = s + 2 * a[j];
sign[j] = 1;
swap (v[1][i], v[1][v[1].size () - 1]);
v[1].pop_back ();
v[0].push_back (j);
}
else {
i = rand () % v[0].size ();
int j = v[0][i];
s = s - 2 * a[j];
swap (v[0][i], v[0][v[0].size () - 1]);
v[0].pop_back ();
v[1].push_back (j);
sign[j] = -1;
}
}
for (i = 1; i <= n; i++)
printf ("%c", (sign[i] == 1) ? '+' : '-');
return 0;
}