공
시간 제한1초메모리 제한256 MB
벽이 있는 수직선 위에 지름 1인 공들을 유지하며, 빈 자리에 공을 삽입하고 가장 왼쪽 공을 굴려 충돌을 전파시키는 질의를 처리한 뒤 모든 공의 최종 위치를 출력한다.
문제
수직선 위에 지름이 인 공 개가 있고, 각각 번부터 번까지 번호가 붙어 있다. 번 공의 가장 왼쪽 점은 에 있다. 또한 위치에 움직이지 않는 벽이 있다. 다음 두 가지 형태의 질의 개를 처리해야 한다.
- "1 ": 가장 왼쪽 점이 인 새 공을 삽입한다. 그 자리가 이미 차 있다면 아무것도 하지 않는다.
- "2": 가장 왼쪽에 있는 공을 오른쪽으로 굴린다. 굴러가는 공이 (거리 만큼 이동한 경우도 포함해) 정지한 공과 충돌하면 그 공은 멈추고, 충돌한 공이 같은 방향으로 굴러가기 시작한다. 굴러가는 공은 충돌한 물체의 위치보다 작은 위치에서 멈춘다. 공은 벽에 닿으면 멈춘다.
공들의 최종 위치를 구하라.
입력
첫째 줄에 세 정수 , , 가 주어진다. 이는 각각 처음 공의 개수, 질의의 개수, 벽의 위치이다 (, ).
둘째 줄에 개의 정수 이 주어진다 (). 위치는 모두 다름이 보장된다.
다음 개의 줄에 질의가 주어지며, 다음 형태 중 하나이다.
- "1 " ()
- "2"
출력
공들의 최종 위치를 증가하는 순서로 한 줄에 공백으로 구분해 출력한다.