유클리드 게임

면접 대비

시간 제한1초메모리 제한128 MB

요약
두 수로 시작하는 유클리드 게임을 최적으로 둘 때 누가 이기는지 각 쌍마다 판정하고, 0 0이 나오면 멈춘다.
난이도

보통10점 중 6점

유형
게임 이론, 수학, 정수론, 재귀
정답자
아직 제출이 없습니다

문제

유클리드 게임은 두 사람이 자연수 두 개로 시작하는 게임이다. 동혁이와 동규가 이 게임을 하며, 항상 동혁이가 먼저 시작한다.

각 차례에 현재 차례인 사람은 두 수 중 큰 수에서 작은 수의 양의 배수를 뺀다. 이때 뺀 결과는 음이 아닌 정수여야 하며, 빼기 전의 큰 수보다 반드시 작아야 한다. 두 사람은 이렇게 번갈아 가며 수를 줄여 나간다. 큰 수를 정확히 00으로 만든 사람이 게임에서 이긴다.

예를 들어 (25,7)(25, 7)로 시작하는 게임은 다음과 같이 진행될 수 있다. (각 줄의 두 수는 그 시점에서의 큰 수와 작은 수이다.)

  • 25 7
  • 11 7
  • 4 7
  • 4 3
  • 1 3
  • 1 0

이 경우에는 동혁이가 이긴다.

두 사람이 모두 최적으로 플레이한다고 할 때, 시작하는 두 자연수가 주어지면 누가 이기는지 구하는 프로그램을 작성하시오.

입력

입력은 여러 줄로 이루어진다. 각 줄에는 게임을 시작하는 두 자연수가 주어지며, 항상 동혁이가 먼저 시작한다. 두 자연수는 모두 231−12^{31}-1 이하이다. 입력의 마지막 줄에는 00 두 개가 주어지며, 이 줄은 처리하지 않는다.

출력

각 게임에 대해 동혁이가 이기면 A wins를, 동규가 이기면 B wins를 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

    입력
    34 12
    15 24
    0 0
    
    예상 출력
    A wins
    B wins
    
  2. 예제 2

    입력
    25 7
    0 0
    
    예상 출력
    A wins