Pagini recente » Cod sursa (job #2898006) | Cod sursa (job #1265417) | Cod sursa (job #1140754) | Cod sursa (job #415473) | Cod sursa (job #2922375)
#include <fstream>
using namespace std;
ifstream fin ("semne.in");
ofstream fout("semne.out");
struct elem
{
int nr,poz;
}C[50001];
int n,s,i,V[50001],st,dr,nr,suma,F[50001];
long long S[50001];
int main()
{
fin>>n>>s;
for(i=1;i<=n;i++)
{
fin>>V[i];
S[i]=V[i]+S[i-1];
}
nr=(S[n]-s)/2;
st=1;
dr=0;
suma=0;
for(i=1;V[i]<=nr;i++)
{
if(suma+V[i]<=nr)
{
C[++dr].nr=V[i];
C[dr].poz=i;
suma=suma+V[i];
if(suma==nr)
break;
}
else
{
while(suma>nr&&st<=dr)
{
suma=suma-C[st].nr;
st++;
}
if(suma==nr)
break;
}
}
for(i=st;i<=dr;i++)
F[C[i].poz]=1;
for(i=1;i<=n;i++)
{
if(F[i]==0)
fout<<"+";
else
fout<<"-";
}
return 0;
}