Pagini recente » Cod sursa (job #1286680) | Cod sursa (job #1696472) | Cod sursa (job #724944) | Cod sursa (job #2760255) | Cod sursa (job #2196937)
#include <iostream>
#include <fstream>
#include <vector>
#include <random>
#include <ctime>
#define MAX 50010
using namespace std;
typedef long long ll;
ll n,s,nrp,nr,st,dr,mij,sf;
ll a[MAX];
bool sm[MAX];
vector<int> v1,v2;
int main()
{
ifstream f ("semne.in");
ofstream g ("semne.out");
f>>n>>sf;
for(ll i=1;i<=n;i++){
f>>a[i];
s+=a[i],sm[i]=1,nrp++,v1.push_back(i);
}
nrp=n; srand(time(0));
while(s!=sf){
nr=rand();
if(s<sf){
nr=nr%(v2.size());
s+=a[v2[nr]]*2,sm[v2[nr]]=1,v1.push_back(v2[nr]),v2.erase(v2.begin()+nr);
} else {
//cout<<v1.size()<<" ";
nr=nr%(v1.size());
s-=a[v1[nr]]*2,sm[v1[nr]]=0,v2.push_back(v1[nr]),v1.erase(v1.begin()+nr);
}
}
for(ll i=1;i<=n;i++)
if(sm[i]==0)g<<'-';
else g<<'+';
g<<'\n';
f.close ();
g.close ();
return 0;
}