Pagini recente » Cod sursa (job #3171773) | Cod sursa (job #1255146) | Cod sursa (job #281073) | Cod sursa (job #308650) | Cod sursa (job #71672)
Cod sursa(job #71672)
using namespace std;
#include <cstdio>
#include <time.h>
#include <cstdlib>
#include <fstream>
#define MAX_N 50005
#define ll long long
int N,i;
ll a[MAX_N],S,Sc;
int tp[MAX_N];
int main()
{
freopen("semne.in","r",stdin);
freopen("semne.out","w",stdout);
scanf("%d %lld",&N,&S);
for (i=1; i<=N; i++) scanf("%lld",a+i);
memset(tp,0,sizeof(tp)); Sc=0;
for (i=N; i>=N/3; i--)
if (Sc<S)
{
Sc+=a[i];
tp[i]=1;
}
else Sc-=a[i];
int c=N/3,d=0;
for (i=1; i<=c-1; i++) Sc-=a[i];
srand(unsigned(time(NULL)));
while (Sc!=S)
{
d=rand() % c;
if (Sc<S && !tp[d])
{
Sc+=(a[d]<<1);
tp[d]=1;
}
if (Sc>S && tp[d])
{
Sc-=(a[d]<<1);
tp[d]=0;
}
}
for (i=1; i<=N; i++)
if (tp[i]) printf("+");
else printf("-");
return 0;
}