Pagini recente » Cod sursa (job #1739857) | Cod sursa (job #87436) | Cod sursa (job #2292468) | Cod sursa (job #2465305) | Cod sursa (job #1993633)
#include<fstream>
#include<ctime>
#include<cstdlib>
#include<vector>
using namespace std;
ifstream f("semne.in");
ofstream g("semne.out");
vector<int> Plus,Minus;
char R[50001];
int A[50001],i,n,poz;
long long S,s;
int main()
{
srand(time(NULL));
f>>n>>S;
for(i=0; i<n; i++)
{
f>>A[i];
Plus.push_back(i);
s+=A[i];
R[i]='+';
}
while(s!=S)
{
if(s>S)
{
poz=rand()%Plus.size();
R[Plus[poz]]='-';
s=s-2LL*A[Plus[poz]];
Minus.push_back(Plus[poz]);
Plus[poz]=Plus.back();
Plus.pop_back();
}
else
{
poz=rand()%Minus.size();
R[Minus[poz]]='+';
s=s+2LL*A[Minus[poz]];
Plus.push_back(Minus[poz]);
Minus[poz]=Minus.back();
Minus.pop_back();
}
}
g<<R<<"\n";
f.close(); g.close();
return 0;
}