여러 스포츠에서 우승 팀은 더블 녹아웃(double knockout) 방식으로 가려진다. 각 팀은 두 번째 패배를 당해야 비로소 탈락하므로, 최종 우승 팀은 패배가 한 번 이하인 채로 마지막까지 남는 팀이다.
대회는 여러 라운드로 진행된다. 매 라운드마다 아직 탈락하지 않은 팀들을 둘씩 짝지어 경기를 치르는데, 한 가지 규칙이 있다. 무패 팀은 이미 1패를 기록한 팀과 절대 맞붙지 않는다. 이 규칙을 지키면서 매 라운드마다 최대한 많은 팀을 짝짓는다(무패 팀끼리, 1패 팀끼리 경기한다). 모든 경기에는 승자와 패자가 있으며, 패자는 패배 수가 1 늘어나고 2패가 된 팀은 탈락한다.
라운드가 충분히 진행되면 두 팀만 남는다. 이때 한 팀은 무패이고 다른 한 팀은 1패이므로 위 규칙을 더 이상 지킬 수 없어, 두 팀이 서로 맞붙어야 한다. 이 승부는 항상 필요하다고 가정한다. 즉 무패 팀이 이 경기에서 패해 두 팀 모두 1패가 되고, 그런 다음 마지막 라운드를 치러 우승 팀을 가린다.
더블 녹아웃 토너먼트가 라운드별로 어떻게 전개되는지 보고하는 프로그램을 작성하라.
첫째 줄에 테스트 케이스의 수를 나타내는 양의 정수 $n$이 주어진다. 이어지는 $n$개의 줄에는 각각 해당 대회에 참가하는 팀의 수를 나타내는 양의 정수 $t$ ($t < 32768$)가 하나씩 주어진다.
각 테스트 케이스마다 먼저 초기 상태를 다음 형식의 줄로 출력한다.
Round 0: 2 undefeated, 0 one-loss, 0 eliminated
그다음, 치러진 각 라운드에 대해 같은 형식으로 한 줄씩 출력한다. 각 줄은 해당 라운드가 끝난 뒤의 상태, 즉 무패 팀 수, 1패 팀 수, 탈락한 팀 수를 나타낸다. 마지막으로 There are R rounds 형식의 줄을 출력하며, 여기서 $R$은 치러진 라운드의 수이다. 연속한 테스트 케이스의 출력은 빈 줄 하나로 구분한다.
추가로 생각해 볼 문제:
b) 어떤 음이 아닌 정수 $k$에 대해 팀이 $t = 2^{2^{k}}$개 있다면, 몇 라운드가 치러지는가?
c) 팀이 $t$개인 대회에서는 총 몇 경기가 치러지는가?