끊임없는 정렬과 창조함으로

시간 제한1초메모리 제한1024 MB

요약
쿼리마다 배열 전체를 오름차순이나 내림차순으로 정렬하거나 주어진 위치에 값을 삽입하고, 마지막 배열을 출력한다.
난이도

보통10점 중 6점

유형
연결 리스트, 구현, 정렬
정답자
아직 제출이 없습니다

문제

끊임없는 정렬과 창조함으로

우리는 이루리 한국의 미래

이곳에서 이루리 우리의 꿈을

한국디지털미디어고등학교

- 한국디지털미디어고등학교 교가 中 -

디미고에는 끊임없이 정렬과 창조를 하면 한국의 미래를 이룰 수 있다는 전설이 있다. 하지만 정렬과 창조를 너무 많이 하면 공간도 부족하고, 무엇보다 힘들기 때문에 디미고에서는 다음과 같은 정렬과 창조 쿼리를 배열 SS에 QQ번만 할 수 있도록 허용하고 있다. 배열 SS는 처음에 빈 배열이다.

  • 1 x: SS를 xx가 11인 경우 오름차순, 22인 경우 내림차순으로 정렬한다. (x \in \left\\{1, 2 \right\\}) 
  • 2 x t: S_xS\_x와 S_x+1S\_{x+1} 사이에 tt를 삽입한다. x=0x = 0인 경우에는 배열의 맨 앞에, x=0x = 0이 아니면서 x=∣S∣x = |S|인 경우에는 배열의 맨 뒤에 tt를 삽입한다. 단, ∣S∣|S|는 배열 SS의 크기를 나타낸다. (0≤x≤∣S∣;−109≤t≤109)(0\leq x\leq |S|; -10^9\leq t\leq 10^9)

QQ개의 쿼리를 모두 수행한 뒤 만들어지는 배열을 구하는 프로그램을 작성하시오.

입력

첫 번째 줄에 쿼리의 개수 QQ가 주어진다. (1≤Q≤3,000)(1\leq Q\leq 3\\,000)

두 번째 줄부터 QQ개의 줄에 걸쳐 쿼리가 한 줄에 하나씩 주어진다.

출력

첫 번째 줄에 모든 쿼리를 순서대로 수행한 후 ∣S∣|S|를 출력한다.

두 번째 줄에 배열 SS의 원소를 순서대로 공백으로 구분하여 출력한다. 빈 배열일 경우 출력하지 않는다.

힌트

원래 교가의 가사는 "끊임없는 정열과 창조함으로"이다. 헷갈리지 않게 주의하자.

예제2

  1. 예제 1

    입력
    5
    2 0 1
    2 0 2
    2 1 3
    1 2
    2 1 9
    
    예상 출력
    4
    3 9 2 1
    
  2. 예제 2

    입력
    10
    2 0 1
    2 1 3
    2 2 5
    2 3 6
    1 1
    2 0 1
    2 0 3
    2 0 4
    2 0 9
    2 0 1
    
    예상 출력
    9
    1 9 4 3 1 1 3 5 6