Pagini recente » Cod sursa (job #2694508) | Cod sursa (job #2711849) | Cod sursa (job #1607359) | Cod sursa (job #1062181) | Cod sursa (job #788254)
Cod sursa(job #788254)
#include<algorithm>
#include<fstream>
#include<cstdlib>
using namespace std;
ifstream f("semne.in");
ofstream g("semne.out");
int x,n,i,m1,p1,p[50001],m[50001],v[50001];
long long s,s1;
char a[50001];
int main()
{f>>n>>s;
for(i=1;i<=n;++i)
f>>v[i];
for(i=1;i<=n;++i)
{x=rand()%2;
if(x)
{p1++;
p[p1]=i;
s1+=v[i];
a[i]='+';
}
else
{m1++;
m[m1]=i;
s1-=v[i];
a[i]='-';
}
}
while(s1!=s)
{if(s1>s)
{x=rand()%p1+1;
s1-=(2*v[p[x]]);
--p1;
++m1;
m[m1]=p[x];
a[p[x]]='-';
swap(p[p1+1],p[x]);
p[p1+1]=0;
}
else
{x=rand()%m1+1;
s1+=(2*v[m[x]]);
--m1;
++p1;
p[p1]=m[x];
a[m[x]]='+';
swap(m[m1+1],m[x]);
m[m1+1]=0;
}
}
for(i=1;i<=n;++i)
g<<a[i];g<<'\n';
return 0;
}