은행 대기열
면접 대비시간 제한2초메모리 제한1024 MB
사람이 줄에 들어오고 맨 앞 사람이 나가는 상황에서, 주어진 위치 앞에 기분이 x 이상인 사람이 몇 명인지 구합니다.
문제
스크루지는 최근 은행에서 경비원으로 일하게 되었다. 일이 지루해서 그는 대기열을 지켜보기 시작했다. 처음에 대기열에는 명이 서 있다. 스크루지는 몇 년 동안 심리학자로 일했기 때문에 대기열에 있는 각 사람의 기분을 꽤 정확하게 판단할 수 있다. 그는 앞에서부터 0번부터 번호를 붙였으므로, 사람의 번호는 그 앞에 서 있는 사람의 수와 같다. 번째 사람의 기분은 음이 아닌 정수 로 적는다. 기분이 이상이면 좋은 기분, 그렇지 않으면 나쁜 기분이라고 본다.
사람들은 대기열에 들어오고 나간다. 새 사람이 들어오면 스크루지는 즉시 그 사람의 기분을 판단하며, 시간이 지나도 기분은 바뀌지 않는다.
스크루지는 새로운 소일거리를 찾았다. 특정 시점에 대기열에서 한 사람을 고른 뒤, 그 사람 앞에 좋은 기분의 사람이 몇 명 서 있는지 센다. 그는 이 일이 재미있어서 자동화하고 싶어 한다. 스크루지는 프로그래밍에 능하지 않아서 여러분에게 도움을 청했다. 도와주자!
입력
첫 줄에 두 정수 , 가 주어진다 (, ). 각각 처음 대기열의 인원 수와 좋은 기분의 하한이다.
둘째 줄에는 대기열에 있는 명의 기분 가 주어진다 ().
셋째 줄에는 사건의 수 이 주어진다 (). 이어지는 개의 줄에는 다음 중 하나의 사건이 한 줄씩 주어진다.
1 (): 기분이 인 사람이 대기열 맨 뒤에 들어온다.
2: 앞에 아무도 없는 사람(번호 0)이 대기열에서 나간다. 그 후 스크루지는 모든 사람의 번호를 1씩 줄인다.
3 : 이 시점에 앞에 명이 서 있는 사람의 앞에 좋은 기분의 사람이 몇 명 서 있는지 스크루지가 묻는다.
모든 질의는 올바르다. 대기열이 비어 있으면 2번 사건은 수행되지 않는다. 3번 질의의 는 항상 현재 대기열의 인원 수보다 작다.
출력
3번 질의마다, 주어진 번호의 사람 앞에 서 있는 좋은 기분의 사람 수를 한 줄에 출력한다.