Pagini recente » Cod sursa (job #248291) | Cod sursa (job #3126323) | Cod sursa (job #2314845) | Cod sursa (job #624834) | Cod sursa (job #2799986)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("semne.in");
ofstream fout("semne.out");
const int NMAX = 5e4;
int h[NMAX + 5];
int main()
{
int n, k;
long long s = 0;
fin >> n >> k;
vector <int> a(n), b;
string res(n, '+');
iota(a.begin(), a.end(), 0);
random_shuffle(a.begin(), a.end());
for(int i = 0; i < n; i++)
fin >> h[i],
s += h[i];
while(s != k) {
if(s > k) {
int r = rand() % a.size();
swap(a[r], a[a.size() - 1]);
s -= h[a.back()] * 2ll;
b.push_back(a.back());
a.pop_back();
} else {
int r = rand() % b.size();
swap(b[r], b[b.size() - 1]);
s += h[b.back()] * 2ll;
a.push_back(b.back());
b.pop_back();
}
}
for(int x : b) res[x] = '-';
fout << res;
return 0;
}