push·pop 연산 복원


문제 정보
check포인트 : 1 (부분 점수)
schedule시간 제한 : 2.0s
storage메모리 제한 : 128M
edit_square출제자:
 
답안 제출

오름차순으로만 삽입(push) 가능한 스택을 이용해 목표 수열을 생성하는 방법을 구하라.

1부터 n까지의 정수를 순서대로 스택에 push할 수 있으며, pop한 원소들이 목표 수열과 일치해야 한다.

수열 생성이 가능하면 각 연산을 push는 +, pop은 -로 한 줄씩 출력하고, 불가능하면 NO를 출력하라.

입력 설명

첫 줄에 n (1 ≤ n ≤ 100,000)이 주어진다.

둘째 줄부터 n개의 줄에는 수열을 이루는 1이상 n이하의 정수가 하나씩 순서대로 주어진다. 물론 같은 정수가 두 번 나오는 일은 없다.

출력 설명

입력된 수열을 만들기 위해 필요한 연산을 한 줄에 한 개씩 출력한다.

push연산은 +로, pop 연산은 -로 표현하도록 한다. 불가능한 경우 NO를 출력한다.

힌트

1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.

예제 입력 1

8
4
3
6
8
7
5
2
1

예제 출력 1

+
+
+
+
-
-
+
+
-
+
+
-
-
-
-
-

예제 입력 2

5
1
2
5
3
4

예제 출력 2

NO

댓글

현재 작성된 댓글이 없습니다.