Eeny Meeny

면접 대비

시간 제한2초메모리 제한512 MB

요약
동아리 아이들을 원형으로 세워 두고 운율의 단어 수만큼 세면서 한 명씩 뽑아 두 팀에 번갈아 배정하는 과정을 시뮬레이션한다.
난이도

보통10점 중 4점

유형
시뮬레이션, 구현, 큐, 배열
정답자
아직 제출이 없습니다

문제

"Eeny meeny miny moe"는 영어권에서 널리 알려진 동요로, 아이들이 팀을 "무작위로" 나눌 때 쓴다. 여러 변형이 있는데 그중 하나는 다음과 같다.

Eeny, meeny, miny, moe,
Catch a tiger by the toe.
If he hollers, let him go,
Eeny, meeny, miny, moe.

핀란드어의 "Ulle dulle dof", 노르웨이어의 "Akka bakka bonka rakka", 스웨덴어의 "Ole dole doff"처럼 비슷한 구절이 대부분의 언어에 있다.

두 팀을 정해 게임을 하려고 한다. 이 동요를 사용해 한 명씩 팀에 배정하며, 두 팀을 번갈아 가며 모든 아이가 배정될 때까지 반복한다. 아이들은 원을 이루어 서 있다. 각 선택 차례마다 원을 따라 시계 방향으로 아이를 세면서 동요의 단어마다 아이를 한 명씩 건너뛰고, 마지막 단어에 해당하는 아이를 선택한다. 그 아이는 현재 팀에 배정되고 다음 차례가 시작된다. 첫 번째를 제외한 모든 차례에서 세기는 이전 차례에 선택된 아이의 시계 방향으로 다음 남은 아이부터 시작한다. 예시는 Figure E.1을 참고하라.

이러한 동요와 아이들의 명단이 주어질 때, 어떤 아이가 어느 팀에 들어갈지 구할 수 있는가?

Figure E.1: Sample Input 1의 처음 세 차례를 그림으로 나타낸 것이다. 1번째와 3번째 차례에서는 Alvar와 Rakel이 첫 번째 팀에 선택되고, 2번째 차례에서는 Lisa가 두 번째 팀에 선택된다. 4번째 차례(그림에 없음)에서는 Kalle만 남아 두 번째 팀에 선택된다.

입력

첫째 줄에는 동요가 주어지며, 공백으로 구분된 단어의 목록이다. 둘째 줄에는 아이의 수를 나타내는 정수 n (1 ≤ n ≤ 100)이 주어진다. 그다음 줄부터 아이들의 이름이 한 줄에 하나씩 주어진다. 아이들은 시계 방향 순서로 주어지며, 첫 번째로 주어진 아이가 첫 차례에서 세기를 시작하는 아이이다.

모든 단어와 이름은 대문자와 소문자 'A'-'Z'와 'a'-'z'로만 이루어진다. 어떤 입력 줄도 비어 있지 않고 길이가 100자를 넘지 않는다(줄 끝의 개행 문자는 제외).

출력

두 팀을 출력하며, 첫 번째 구성원이 먼저 선택된 팀부터 출력한다. 각 팀마다 팀에 속한 아이의 수를 출력하고, 이어서 팀에 선택된 순서대로 아이들의 이름을 출력한다.

예제2

  1. 예제 1

    입력
    eeny meeny miny
    4
    Kalle
    Lisa
    Alvar
    Rakel
    
    예상 출력
    2
    Alvar
    Rakel
    2
    Lisa
    Kalle
    
  2. 예제 2

    입력
    Every Other
    3
    a
    b
    c
    
    예상 출력
    2
    b
    c
    1
    a