Pagini recente » Cod sursa (job #2881919) | Cod sursa (job #1030689) | Cod sursa (job #1666901) | Cod sursa (job #1388924) | Cod sursa (job #1051817)
#include <fstream>
#include <cstring>
#include <ctime>
#include <cstdlib>
using namespace std;
const int nmax = 50002;
int n;
int a[nmax];
bool sg[nmax];
long long S;
void go(long long sum) {
if (sum == S) {
return;
}
int pos = rand() % n;
if (sum < S) {
if (sg[pos]) {
sum += 2 * a[pos];
sg[pos] = false;
}
} else {
if (!sg[pos]) {
sum -= 2 * a[pos];
sg[pos] = true;
}
}
go(sum);
}
int main()
{
ifstream cin("semne.in");
ofstream cout("semne.out");
ios :: sync_with_stdio(false);
cin >> n >> S;
srand(static_cast<unsigned int>(time(0)));
long long sum = 0;
for (int i = 0;i < n;i++) {
cin >> a[i];
if (sum < S) {
sum += a[i];
} else {
sum -= a[i];
sg[i] = true;
}
}
go (sum);
sum = 0;
for (int i = 0;i < n;i++) {
cout << (sg[i] ? '-' : '+');
}
return 0;
}