아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

공

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

요약
벽이 있는 수직선 위에 지름 1인 공들을 유지하며, 빈 자리에 공을 삽입하고 가장 왼쪽 공을 굴려 충돌을 전파시키는 질의를 처리한 뒤 모든 공의 최종 위치를 출력한다.
난이도

보통10점 중 7점

유형
시뮬레이션, 해시맵, 유니온 파인드, 구현
정답자
아직 제출이 없습니다

문제

수직선 위에 지름이 11인 공 NN개가 있고, 각각 11번부터 NN번까지 번호가 붙어 있다. ii번 공의 가장 왼쪽 점은 p_ip\_i에 있다. 또한 PP 위치에 움직이지 않는 벽이 있다. 다음 두 가지 형태의 질의 QQ개를 처리해야 한다.

  • "1 xx": 가장 왼쪽 점이 xx인 새 공을 삽입한다. 그 자리가 이미 차 있다면 아무것도 하지 않는다.
  • "2": 가장 왼쪽에 있는 공을 오른쪽으로 굴린다. 굴러가는 공이 (거리 00만큼 이동한 경우도 포함해) 정지한 공과 충돌하면 그 공은 멈추고, 충돌한 공이 같은 방향으로 굴러가기 시작한다. 굴러가는 공은 충돌한 물체의 위치보다 11 작은 위치에서 멈춘다. 공은 벽에 닿으면 멈춘다.

공들의 최종 위치를 구하라.

입력

첫째 줄에 세 정수 NN, QQ, PP가 주어진다. 이는 각각 처음 공의 개수, 질의의 개수, 벽의 위치이다 (1≤N,Q≤1051 \leq N, Q \leq 10^5, N≤P≤109N \leq P \leq 10^9).

둘째 줄에 NN개의 정수 p_1,p_2,…,p_Np\_1, p\_2, \ldots, p\_N이 주어진다 (0≤p_i<P0 \leq p\_i < P). 위치는 모두 다름이 보장된다.

다음 QQ개의 줄에 질의가 주어지며, 다음 형태 중 하나이다.

  • "1 xx" (0≤x<P0 \leq x < P)
  • "2"

출력

공들의 최종 위치를 증가하는 순서로 한 줄에 공백으로 구분해 출력한다.

예제2

  1. 예제 1

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

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