베시 셔플
시간 제한1초메모리 제한128 MB
위에서 M장을 주어진 순열로 섞고 맨 위 카드를 새 더미로 옮기기를 반복한 뒤 질의한 위치에 놓인 카드를 구합니다.
문제
베시는 카드 마술을 연습하고 있다. 베시 셔플은 이미 완벽하게 익혔다. 베시 셔플은 카드 장()을 한꺼번에 섞는 방법으로, 위에서 번째 카드를 위에서 번째 자리로 보낸다.
이제 베시는 더 큰 덱으로 연습한다. 덱은 부터 까지 번호가 붙은 카드 장()으로 이루어져 있다. 베시는 맨 위 장을 집어 베시 셔플을 한 다음 그대로 덱 맨 위에 올린다. 그리고 맨 위 카드 한 장을 빼서 뒷면이 보이도록 옆에 내려놓는다. 베시는 이 과정을 반복하며, 빼낸 카드는 앞서 내려놓은 카드 위에 차례로 쌓는다. 남은 카드가 장보다 적어지면 베시 셔플은 더 하지 않고, 맨 위 카드를 더미로 옮기는 것만 반복한다.
처음 덱은 정렬되어 있어서 맨 위가 , 그다음이 , 맨 아래가 이다. 베시 셔플이 주어질 때, 카드를 모두 옮기고 나서 완성된 더미에서 위에서 번째에 놓인 카드가 무엇인지 질의 개에 대해 구하라. (, )
입력
첫째 줄에 , , 가 공백으로 구분되어 주어진다.
둘째 줄부터 개 줄에 걸쳐 한 줄에 하나씩 정수가 주어진다. 번째 줄의 수는 베시 셔플에서 위에서 번째 카드가 옮겨 가는 자리 다. () 부터 까지는 부터 까지를 한 번씩 사용한다.
그다음 개 줄에 걸쳐 한 줄에 하나씩 질의가 주어진다. 번째 질의는 정수 이며, 완성된 더미에서 위에서 번째 카드를 묻는다. ()
출력
개 줄을 출력한다. 번째 줄에는 번째 질의의 답, 즉 완성된 더미에서 위에서 번째 카드에 적힌 번호를 출력한다.
힌트
첫 번째 예제에서 베시는 순서로 놓인 카드 장을 가지고 있다. 셔플은 카드 장에 적용되고, 맨 위 카드를 아래로 보내는 효과가 있다. 덱은 다음과 같이 바뀐다.
- , 여기서 를 내려놓는다
- , 여기서 을 내려놓는다
- , 여기서 을 내려놓는다
- 에서 를 내려놓는다
- 에서 를 내려놓는다
완성된 더미는 위에서부터 가 된다.