개의 돌 무더기로 시작하는 게임이 있다. 게임은 두 명의 선수가 턴을 번갈아가며 진행한다.
현재 돌 무더기의 돌 개수가 각각 , , 라고 하자. 무더기의 돌 개수는 항상 이상의 정수여야 한다. 현재 차례인 선수는 다음 과정을 진행한다:
- 돌 무더기 중 하나를 제거한다. (돌 개수가 인 무더기가 제거되었다고 하자.)
- 남은 돌 무더기 중 하나를 두 개로 나눈다. 돌 개수가 인 무더기를 돌 개수가 , 인 두 개의 무더기로 나누었다고 하면 이고 , 을 만족해야 한다.
위 과정 중 2. 에서 만약 이라면 무더기를 나눌 수 없음에 주의하라.
현재 차례인 선수가 위의 과정을 진행하지 못하는 경우 해당 선수가 지고 다른 선수가 이긴다.
두 선수가 모두 최선을 다하는 경우 먼저 차례를 시작하는 선수(first)와
그다음에 차례가 되는 선수(second) 중
누가 이기는지 알아내는 프로그램을 작성하라.
지는 선수가 어떤 선택을 하더라도 이기는 선수가 반드시 이기는
적절한 선택이 존재해야 한다.
입력 형식
첫 줄에 테스트 케이스의 수를 나타내는 정수 가 주어진다.
그다음 개의 줄에 걸쳐, 각 줄마다 하나의 테스트 케이스가 주어진다. 각 테스트 케이스는 최초 돌 무더기의 돌 개수를 나타내는 세 정수 , , 가 공백으로 구분되어 주어진다.
출력 형식
각 테스트 케이스 별로 한 줄에,
먼저 차례를 시작하는 선수가 이기는 경우 first를,
그다음에 차례가 되는 선수가 이기는 경우 second를
출력한다.
예제
입력
3 1 1 1 1 2 1 2 1 2
출력
second first first
예제 설명
첫 테스트 케이스의 경우, 첫 차례에서 진행이 불가능하므로 그다음 차례를 받는 선수가 이긴다.
두 번째 테스트 케이스의 경우, 개수가 인 무더기를 제거하고 개수가 인 무더기를 개수가 각각 인 무더기로 나누면, 그다음 차례에서 진행이 불가능하다.
세 번째 테스트 케이스의 경우, 개수가 인 무더기 중 하나를 제거하고 개수가 인 무더기를 개수가 각각 인 무더기로 나누면, 그다음 차례에서 진행이 불가능하다.
채점 방식
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 13점
종류 2: 11점
종류 3: 29점
종류 4: 42점
종류 5: 5점
모든 입력 케이스가 주어진다.
해설
양의 정수 가 홀수가 될 때까지 로 반복해서 나눌 때, 총 나눠지는 횟수를 라고 정의합시다. 예를 들어, , , , 입니다.
게임의 상태 가 주어졌을 때, 현재 차례인 선수가 패배함은 와 동치입니다. 따라서, 각 테스트 케이스에 대해 에 해결할 수 있습니다.
증명은 이러합니다:
- 먼저, 라면, 로 이미 패배했거나, 일반성을 잃지 않고 인 상태로 상대에게 차례를 넘겨줍니다.
- 만약, 가 아닌 상태라면, 일반성을 잃지 않고 인 두 수 , 를 잡을 수 있습니다. 즉, 돌 개수가 인 돌 무더기를 제거한 후, 돌 개수가 인 돌 무더기를 이면서 가 되도록 나눌 수 있습니다. 차례가 지날수록 총 돌의 개수 는 감소하므로, 위의 귀납법은 정당합니다