소각로
시간 제한2초메모리 제한512 MB
폐기물 큐와 M개의 소각로 칸을 두고 소각, 조회, 추가, 재활용 명령을 처리한 뒤 마지막 칸 상태를 출력한다.
문제
종영이는 종류가 부터 까지 번호가 붙은 쓰레기 개를 순서대로 태우려고 한다. 쓰레기의 종류를 순서대로 나열한 수열을 이라 하자. 태워야 할 쓰레기가 나중에 대기열의 뒤에 추가될 수도 있다.
소각로에는 번부터 번까지 번호가 붙은 칸 개가 일렬로 있다. 처음에는 대기열 앞에서부터 개를 꺼내어 번 칸부터 순서대로 놓는다. 이면 오른쪽 칸은 비어 있다.
소각 작업은 연속된 구간 ()에 있는 쓰레기를 한 번에 태우는 것이다. 태운 뒤 빈 칸 을 대기열 앞에서부터 순서대로 꺼내어 번 칸부터 순서대로 채운다. 대기열이 먼저 바닥나면 남은 칸은 비워 둔다.
다음 네 가지 명령을 모두 번 수행하는 프로그램을 작성하라.
- 소각로의 구간 에 소각 작업을 진행한다.
- 소각로 번 칸에 놓인 쓰레기의 종류를 출력한다.
- 종류가 인 쓰레기 개를 현재 대기열의 뒤에 넣는다.
- 재활용을 위해 현재 대기열 맨 앞의 쓰레기 개를 제거한다.
모든 명령을 수행한 뒤에는 현재 소각로의 상태도 출력해야 한다.
입력
첫째 줄에 가 순서대로 주어진다. ()
둘째 줄에 개의 정수 이 주어진다. ()
이어지는 개의 줄에는 명령이 하나씩 주어진다. 각 줄은 명령의 종류를 나타내는 정수 로 시작한다. ()
- 이면 첫째 명령이며, 과 이 뒤따른다. ()
- 이면 둘째 명령이며, 가 뒤따른다. ()
- 이면 셋째 명령이며, 와 가 뒤따른다. (, )
- 이면 넷째 명령이며, 가 뒤따른다. ( 현재 대기열에 있는 쓰레기의 개수)
둘째 명령은 한 번 이상 주어짐이 보장된다.
출력
첫째 줄에 둘째 명령에 대한 답을 모두 순서대로 공백으로 구분하여 출력한다. 둘째 줄에 모든 명령을 수행한 뒤 소각로에 남은 쓰레기의 종류를 번 칸부터 번 칸까지 순서대로 공백으로 구분하여 출력한다. 빈 칸은 으로 출력한다.