남은 사람이 매 라운드마다 시계 방향으로 M칸 이동한 뒤 S번 좌석에 앉은 사람이 탈락하고 좌석이 다시 번호가 매겨지는 과정을 R라운드 진행한다.
쉬움3시뮬레이션구현배열수학면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB의자 앉기 놀이는 어린이 파티에서 자주 하는 놀이다. 참가자는 원을 이루어 바깥쪽을 보고 의자에 앉는다. 음악이 시작되면 모두 일어나 시계 방향으로 의자 주위를 돈다. 이때 의자 하나를 빼내고, 음악이 멈추면 참가자는 남은 의자 중 하나에 앉으려 한다. 앉지 못한 한 명은 탈락하고, 한 명만 남을 때까지 놀이가 이어진다. 마지막까지 남은 참가자가 우승자다.
각 라운드는 다음과 같이 진행된다. 라운드를 시작할 때 자리가 k개 있고, 시계 방향으로 1번부터 k번까지 번호가 붙어 있다. 빼낼 자리 번호 S와 이동 횟수 M이 주어지면 모든 참가자가 시계 방향으로 M번 이동한다. 한 번 이동하면 바로 다음 번호의 자리로 옮겨 가고, k번 자리에서 이동하면 1번 자리로 간다. 이동이 끝난 뒤 S번 자리에 도착한 참가자가 탈락한다. 남은 참가자는 시계 방향 순서를 그대로 유지한 채 1번부터 k−1번까지 다시 번호를 매긴 자리에 앉는다.
놀이를 시작할 때 참가자는 입력에 주어진 순서대로 1번 자리부터 N번 자리까지 앉는다.
첫째 줄에 참가자 수 N이 주어진다. (1<N≤15)
다음 N개 줄에 참가자의 이름이 한 줄에 하나씩 주어진다. 이름에는 공백이 없고 길이는 10자를 넘지 않는다. 참가자는 이 순서대로 1번 자리부터 앉는다.
다음 줄에 처리할 라운드 수 R이 주어진다. (0<R<N)
이어지는 R개 줄에는 정수 S와 M이 공백으로 구분되어 주어진다. S는 그 라운드에서 빼낼 자리의 번호이고, 라운드를 시작할 때 남아 있는 자리 수를 k라 하면 1≤S≤k이다. M은 음악이 멈출 때까지의 이동 횟수다. (0<M≤30)
각 라운드를 처리할 때마다 다음 형식으로 한 줄씩 출력한다.
<name> has been eliminated.
<name>은 자리에 앉지 못한 참가자의 이름, 즉 빼낸 자리에 도착한 참가자의 이름이다.
주어진 라운드를 모두 처리한 뒤 한 줄을 더 출력한다. 참가자가 한 명만 남았다면 다음과 같이 출력한다.
<name> has won.
두 명 이상 남았다면 다음과 같이 출력한다.
Players left are <name list>.
<name list>는 탈락하지 않은 참가자의 이름을 입력에 주어진 순서대로 공백 하나로 구분해 나열한 것이다.