Pagini recente » Cod sursa (job #1759304) | Cod sursa (job #1179243) | Cod sursa (job #2711125) | Cod sursa (job #1326194) | Cod sursa (job #2404810)
#include <bits/stdc++.h>
using namespace std;
ifstream in("semne.in");
ofstream out("semne.out");
const int NMAX = 5 * 1e4 + 1e2;
long long n, sum, nr;
long long v[NMAX];
char signp1[NMAX];
bool ok;
void compute_vals(int poz) {
if(sum != nr) {
while(poz > 0 && !ok) {
signp1[poz] = '-';
nr -= v[poz] * 2;
if(nr >= sum)
compute_vals(poz - 1);
if(!ok) {
signp1[poz] = '+';
nr += v[poz]*2;
poz--;
}
}
} else {
ok = 1;
}
}
int main()
{
in >> n >> sum;
for(int i = 1; i <= n; i++) {
in >> v[i];
nr += v[i];
signp1[i] = '+';
}
compute_vals(n);
for(int i = 1; i <= n; i++)
out << (char)signp1[i];
in.close();
out.close();
return 0;
}