Pagini recente » Cod sursa (job #1572930) | Cod sursa (job #258417) | Cod sursa (job #1354991) | Cod sursa (job #1628450) | Cod sursa (job #2196627)
#include <iostream>
#include <fstream>
#include <random>
#define MAX 50010
using namespace std;
typedef long long ll;
ll n,s,sf,nr;
ll a[MAX];
bool sm[MAX];
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;
default_random_engine g1,g2;
uniform_int_distribution<int> distribution(1,n); //??
while(s!=sf)
if(s<sf){
nr=distribution(g1);
if(sm[nr]==0)s+=2*a[nr];
sm[nr]=1;
} else {
nr=distribution(g2);
if(sm[nr]==1)s-=2*a[nr];
sm[nr]=0;
}
for(ll i=1;i<=n;i++) if(sm[i]==0)g<<'-'; else g<<'+';
g<<'\n';
f.close ();
g.close ();
return 0;
}