Pagini recente » Cod sursa (job #485945) | Cod sursa (job #1124553) | Cod sursa (job #1106987) | Cod sursa (job #2275170) | Cod sursa (job #2011005)
#include <bits/stdc++.h>
#define ll long long
#define Nmax 50001
using namespace std;
ifstream f("semne.in");
ofstream g("semne.out");
char a[Nmax];
ll v[Nmax];
vector <int> pls;
vector <int> mins;
int main()
{
srand(time(NULL));
ll n,s,sum=0,i,x;
f>>n>>s;
for(i=1;i<=n;i++)
{
f>>v[i];
if(sum<s)
{
sum+=v[i];
pls.push_back(i);
a[i]='+';
}
else
{
sum-=v[i];
mins.push_back(i);
a[i]='-';
}
}
while(sum!=s)
{
if(sum<s)
{
x=rand()%mins.size();
sum+=2*v[mins[x]];
pls.push_back(mins[x]);
a[mins[x]]='+';
mins[x]=mins.back();
mins.pop_back();
}
else
{
x=rand()%pls.size();
sum-=2*v[pls[x]];
mins.push_back(pls[x]);
a[pls[x]]='-';
pls[x]=pls.back();
pls.pop_back();
}
}
for(i=1;i<=n;i++)
g<<a[i];
return 0;
}