페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#8682
서브태스크

세 개의 막대기 게임 1s 1024MB

문제

세 개의 막대기로 시작하는 게임이 있다. 정올이와 한글이는 차례를 번갈아 진행하며, 매 차례에 막대기 제거와 막대기 분할을 수행한다. 규칙은 다음과 같다.

처음 세 막대기의 길이가 각각 정수 a, b, c이다. 모든 막대기의 길이는 항상 1 이상의 정수여야 한다.
현재 차례의 플레이어는 아래 두 단계를 순서대로 반드시 수행해야 한다.

  1. 막대기 제거: 세 막대기 중 하나를 통째로 제거한다. (예: 길이가 a인 막대기를 제거)

  2. 막대기 분할: 남은 두 막대기 중 하나를 골라 두 개로 쪼갠다.
    선택한 막대기의 길이가 x라면, x_1 + x_2 = x를 만족하도록 x_1 > 0, x_2 > 0인 두 막대기로 정수 길이로 분할한다.

    주의: x=1인 막대기는 분할 불가.

위 두 단계 중 어느 것도 완료할 수 없게 되는 순간 그 플레이어는 즉시 패배하고, 상대가 승리한다.
(예: 시작이 1,1,1이면 1단계는 가능하나 2단계를 수행할 수 없어 현재 차례가 패배)

두 사람 모두 최선을 다한다고 가정하고, 정올이가 차례를 먼저 시작한다고 하였을 때, 각 테스트 케이스에 대해 누가 이기는지 판단하는 프로그램을 작성하시오.


입력

첫 줄에 테스트 케이스 수 T (1 \le T \le 100000)

다음 T줄에 걸쳐 각 줄마다 세 정수 a, b, c (1 \le a,b,c \le 10^{18})가 주어진다.


출력

각 테스트 케이스마다 한 줄에 정올이가 이기면 J, 한글이가 이기면 H를 출력한다.


부분문제

번호 점수 조건
#15점

a,b,c \le 2

#215점

a,b,c \le 4

#320점

a,b,c \le 100

#430점

a,b,c \le 1\ 000\ 000

#530점

추가 제약 조건 없음


예제

3
1 1 1
1 2 1
2 1 2
H
J
J

첫 번째: 정올이는 막대기 하나를 제거해도 남은 두 막대기가 모두 1이라 분할 불가 → 정올이 패, 한글이 승.

두 번째: 정올이가 길이 1 막대기를 제거하고, 21+1로 분할하면 상대가 더 이상 진행 불가정올이 승.

세 번째: 2 중 하나를 제거하고 나머지 21+1로 분할 → 다음 차례 막힘 → 정올이 승.



출처

New York Programming Contest 2025

로그인해야 코드를 작성할 수 있어요.