1874번: 스택 수열 (acmicpc.net)

##
인덱스와 숫자를 증가하면서, 원하는값이 input한 list[index]에 있을때까지 더하고, 스택으로 할수있는 연산 저장하고 출력하면 된다.
코드에 나온 연산 외의 경우는 불가능하므로 NO를 출력하도록 한다

##
from collections import deque
import sys
input = sys.stdin.readlines

l = list(map(lambda x:x.rstrip().replace('\x1a',''),input()[1:]))
l = list(map(int,l))

q = deque([])
num = 1
i = 0


result = []
while (True):
    #print(l,q,i)
    if i == len(l):
        break
    elif len(q) == 0:
        q.append(num)
        num += 1
        result.append('+')

    elif l[i] > q[-1]:
        q.append(num)
        num += 1
        result.append('+')

    elif l[i] == q[-1]:
        q.pop()
        i += 1
        result.append('-')
    else:
        result = ['NO']
        break

print(*result,end='',sep='\n')