Pagini recente » Cod sursa (job #1538076) | Cod sursa (job #2407764) | Cod sursa (job #2401554) | Cod sursa (job #126869) | Cod sursa (job #1962034)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream f("semne.in");
ofstream g("semne.out");
const ll NMax = 50003;
ll n,S,s;
ll a[NMax],v[NMax];
vector<ll> pl,ms;
int main()
{
f >> n >> S;
for(ll i = 1; i <= n; ++i){
f >> a[i];
if(rand() % 2){
pl.push_back(i);
s += a[i];
}else{
ms.push_back(i);
s -= a[i];
}
}
srand(time(NULL));
while(s != S){
if(s > S && pl.size() != 0){
ll x = rand();ll y = rand();
x = (x * y) % pl.size();
s -= 2 * a[pl[x]];
ms.push_back(pl[x]);
pl.erase(pl.begin() + x);
}else{
ll x = rand();ll y = rand();
x = (x * y) % ms.size();
s += 2 * a[ms[x]];
pl.push_back(ms[x]);
ms.erase(ms.begin() + x);
}
}
for(ll i = 0; i < pl.size(); ++i){
v[pl[i]] = 1;
}
for(ll i = 1; i <= n; ++i){
if(v[i] == 1)
g << '+';
else
g << '-';
}
return 0;
}