Pagini recente » Cod sursa (job #2069467) | Cod sursa (job #1107784) | Cod sursa (job #3290770) | Cod sursa (job #2999892) | Cod sursa (job #2799516)
#include <bits/stdc++.h>
using namespace std;
ifstream r("semne.in");
ofstream w("semne.out");
vector<int>v, g;
long long h[5000003];
int main()
{
long long n, s, sumv=0, sumg=0;
r>>n>>s;
for(int i=0;i<n;i++){
r>>h[i];
sumv+=h[i];
v.push_back(i);
}
while(sumv-sumg!=s){
if(sumv-sumg>s){
swap(v[v.size()-1], v[rand()%v.size()]);
sumg+=h[v.back()];
sumv-=h[v.back()];
g.push_back(v.back());
v.pop_back();
}
else{
swap(g[g.size()-1], g[rand()%g.size()]);
sumv+=h[g.back()];
sumg-=h[g.back()];
v.push_back(g.back());
g.pop_back();
}
}
for(auto it: v){
h[it]=-1;
}
for(int i=0;i<n;i++){
if(h[i]==-1){
w<<"+";
}
else{
w<<"-";
}
}
return 0;
}