Pagini recente » Cod sursa (job #177601) | Cod sursa (job #1906764) | Cod sursa (job #392665) | Cod sursa (job #2167744) | Cod sursa (job #1001716)
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <fstream>
#define nmax 50001
using namespace std;
ifstream in("semne.in");
ofstream out("semne.out");
int v[nmax],n,i;
long long sum, s;
char semne[nmax];
int main()
{
in >> n >> sum;
for (i=1; i<=n; i++){
in >> v[i];
s+=v[i];
semne[i]='+';
}
srand(time_t(0));
while (s!=sum){
if (s>sum){
i=rand()%n+1;
while (semne[i]=='-' && i<n) i++;
if (semne[i]=='-' && i==n){
i=1;
while (semne[i]=='-') i++;
}
s-=2*v[i];
semne[i]='-';
}
if (s<sum){
i=rand()%n+1;
while (semne[i]=='+' && i<n) i++;
if (semne[i]=='+' && i==n){
i=1;
while (semne[i]=='+') i++;
}
s+=2*v[i];
semne[i]='+';
}
}
for (i=1; i<=n; i++) out << semne[i];
out << "\n";
return 0;
}