Pagini recente » Cod sursa (job #2144391) | Cod sursa (job #923279) | Cod sursa (job #2129193) | Cod sursa (job #825822) | Cod sursa (job #2418204)
#include <bits/stdc++.h>
using namespace std;
ifstream in("semne.in");
ofstream out("semne.out");
const int N = 50005;
int p[N],m[N],v[N],nrp,nrm;
bool type[N];
int main()
{
srand(time(0));
int n,s,t=0;
in >> n >> s;
for (int i = 1; i<=n; i++)
{
in >> v[i];
t+=v[i];
p[++nrp] = i;
type[i] = 1;
}
while (t!=s)
{
if (t>s)
{
int k = rand()%nrp+1;
t-=2*v[p[k]];
type[p[k]] = 0;
m[++nrm] = p[k];
p[k] = p[nrp--];
}
else
{
int k = rand()%nrm+1;
t+=2*v[m[k]];
type[m[k]] = 1;
p[++nrp] = m[k];
m[k] = m[nrm--];
}
}
for (int i = 1; i<=n; i++)
if (type[i])
out << "+";
else
out << "-";
}