#include < iostream >
#include < cstdio >
#include < string >
using namespace std;
int main() {
// your code goes here
int N, S, i;
int flag = 0;
cin>>N;
cin>>S;
int current_sum = N;
string str = “+”+to_string(N);
for( i = N-1; i > 0; i–){
if(current_sum >= S){
current_sum -= i;
str = “-” + to_string(i) + str;
}
else if (current_sum < S){
current_sum += i;
str = “+” + to_string(i) + str;
}
}
if(current_sum == S && i == 0){
if(str[0] == '+'){
flag = 1;
printf("%s\n",&str[1]);
}
}
current_sum = N;
str = "+"+to_string(N);
for( i = N-1; i > 0; i--){
if(current_sum > S){
current_sum -= i;
str = "-" + to_string(i) + str;
}
else if (current_sum <= S){
current_sum += i;
str = "+" + to_string(i) + str;
}
}
if(current_sum == S && i == 0){
if(str[0] == '+'){
flag = 1;
printf("%s\n",&str[1]);
}
}
current_sum = -1 * N;
str = "-"+to_string(N);
for( i = N-1; i > 0; i--){
if(current_sum >= S){
current_sum -= i;
str = "-" + to_string(i) + str;
}
else if (current_sum < S){
current_sum += i;
str = "+" + to_string(i) + str;
}
}
if(current_sum == S && i == 0){
if(str[0] == '+'){
flag = 1;
printf("%s\n",&str[1]);
}
}
current_sum = -1 * N;
str = "-"+to_string(N);
for( i = N-1; i > 0; i--){
if(current_sum > S){
current_sum -= i;
str = "-" + to_string(i) + str;
}
else if (current_sum <= S){
current_sum += i;
str = "+" + to_string(i) + str;
}
}
if(current_sum == S && i == 0){
if(str[0] == '+'){
flag = 1;
printf("%s\n",&str[1]);
}
}
if( !flag)
printf("Impossible\n");
return 0;
}
My implementation…