Pagini recente » Cod sursa (job #1229093) | Cod sursa (job #2281164) | Cod sursa (job #2247360) | Cod sursa (job #1215456) | Cod sursa (job #2199526)
#include <iostream>
#include <fstream>
#include <vector>
#include <random>
#include <ctime>
#define MAX 50010
using namespace std;
typedef long long ll;
ll n,s,nr,sf,sz1,sz2;
ll a[MAX],v1[MAX],v2[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,v1[sz1++]=i;
}
srand(time(0));
while(s!=sf){
nr=rand();
if(s<sf){
nr=nr%sz2;
s+=a[v2[nr]]*2,sm[v2[nr]]=1,v1[sz1++]=v2[nr],v2[nr]=v2[--sz2];
} else {
nr=nr%sz1;
s-=a[v1[nr]]*2,sm[v1[nr]]=0,v2[sz2++]=v1[nr],v1[nr]=v1[--sz1];
}
}
for(ll i=1;i<=n;i++)
if(sm[i]==0)g<<'-';
else g<<'+';
g<<'\n';
f.close ();
g.close ();
return 0;
}