시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB74221055.556%

문제

두 개의 배열 $A_0$와 $A_1$이 주어집니다.

배열 $A_0$에는 $1$부터 $N$까지의 정수들이 각각 하나씩 들어있습니다. 배열 $A_1$은 비어있습니다.

배열 $A_0$에 있는 수를 왼쪽에서부터 나열했을 때 오름차순이 되도록 최대 $2\,000\,000$회의 연산을 이용해서 정렬해야 합니다.

연산 설명
$PP$ $S$ $T$ $A_S$의 맨 왼쪽 원소를 꺼내어 $A_T$의 맨 왼쪽에 삽입합니다. $A_S$가 비어있다면 아무것도 하지 않습니다.
$RO$ $S$ $A_S$의 맨 왼쪽 원소를 꺼내어 $A_S$의 맨 오른쪽에 삽입합니다. $A_S$가 비어있다면 아무것도 하지 않습니다.
$RRO$ $S$ $A_S$의 맨 오른쪽 원소를 꺼내어 $A_S$의 맨 왼쪽에 삽입합니다. $A_S$가 비어있다면 아무것도 하지 않습니다.

입력

첫째 줄에 배열 $A_0$의 크기 $N$이 주어집니다. $(1 \le{} N \le{}100\,000)$

둘째 줄에 배열 $A_0$의 원소 $a_1, a_2, ..., a_N$이 단일 공백으로 구분되어 주어집니다. $(1 \le{} a_i \le{}N, i ≠ j \Rightarrow a_i ≠ a_j)$

출력

첫째 줄에 배열 $A_0$를 정렬하는 데 필요한 연산의 수 $S$를 출력합니다. $(0 \le{} S \le{}2\,000\,000)$

그 다음 줄부터 $S$줄에 걸쳐 각 줄마다 연산을 출력합니다.

예제 입력 1

2
1 2

예제 출력 1

0

예제 입력 2

2
2 1

예제 출력 2

1
RO 0

예제 입력 3

3
3 2 1

예제 출력 3

6
RO 0
PP 0 1
PP 0 1
RRO 1
PP 1 0
PP 1 0

출처

University > 성균관대학교 > 2023 성균관대학교 프로그래밍 경진대회 J번