Pagini recente » Cod sursa (job #2864951) | Cod sursa (job #2876512) | Cod sursa (job #2747473) | Cod sursa (job #570776) | Cod sursa (job #2492033)
#include <iostream>
#include<fstream>
#include<cstdlib>
#include<ctime>
using namespace std;
struct num
{
long long a,b;
}p[50005],m[50005];
char st[50005];
long long n,sum,u1,u2,i,s,x;
int main()
{
ifstream f("semne.in");
ofstream g("semne.out");
f>>n>>sum;
srand(time(NULL));
for(i=1;i<=n;i++)
{
f>>p[i].a;
p[i].b=i;
s+=p[i].a;
}
u1=n;u2=0;
while(s!=sum)
{
if(s>sum)
{
x=rand()%u1+1;
u2++;
s-=2*p[x].a;
m[u2]=p[x];
p[x]=p[u1];
u1--;
}
else
{
x=rand()%u2+1;
u1++;
s+=2*m[x].a;
p[u1]=m[x];
m[x]=m[u2];
u2--;
}
}
for(i=1;i<=u1;i++)
{
st[p[i].b]='+';
}
for(i=1;i<=u2;i++)
{
st[m[i].b]='-';
}
for(i=1;i<=n;i++) g<<st[i];
return 0;
}