아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Hoof와 Brain

시간 제한4초메모리 제한1024 MB

요약
방향 그래프와 두 토큰의 시작 정점이 주어질 때, 각 질의마다 뇌와 발굽 중 누가 이기는지 판별합니다.
난이도

어려움10점 중 8점

유형
그래프, BFS
정답자
아직 제출이 없습니다

문제

정점이 NN개이고 간선이 MM개인 방향 그래프가 주어집니다 (2≤N≤1052 \leq N \leq 10^5, 1≤M≤2⋅1051 \leq M \leq 2 \cdot 10^5). Farmer John의 소들은 두 명이 하는 다음 게임을 즐깁니다.

그래프의 서로 다른 두 정점에 토큰을 하나씩 놓습니다. 매 턴마다 brain이라고 부르는 플레이어가 나가는 간선을 따라 반드시 이동해야 하는 토큰을 하나 고릅니다. 다른 플레이어인 hoof는 그 토큰이 이동할 간선을 고릅니다. 두 토큰은 같은 정점에 있을 수 없습니다. 어느 시점에 hoof가 유효한 이동을 할 수 없으면 brain이 이깁니다. 게임이 무한히 계속되면 hoof가 이깁니다.

QQ개의 질의(1≤Q≤1051 \leq Q \leq 10^5)가 주어지며, 각 질의는 두 토큰의 시작 정점을 나타냅니다. 각 질의에 대해 어느 플레이어가 이기는지 출력합니다.

입력

첫 줄에 NN과 MM이 주어집니다.

다음 MM개의 줄에는 각각 정수 aa, bb가 주어집니다. 이는 aa에서 bb로 가는 간선을 뜻합니다.

그래프에는 자기 루프와 중복 간선이 없습니다.

다음 줄에는 QQ가 주어집니다.

마지막 QQ개의 줄에는 각각 정수 xx, yy가 주어집니다(1≤x,y≤N1\le x,y\le N, x≠yx\neq y). 두 토큰의 시작 정점입니다.

출력

길이가 QQ인 문자열을 출력합니다. 각 문자는 brain이 이기면 B, hoof가 이기면 H입니다.

힌트

brain은 정점 5를 골라 첫 번째 게임에서 이길 수 있습니다. 그러면 hoof는 유효한 이동을 할 수 없습니다.

brain은 정점 4를 고르고 이어서 정점 7을 골라 마지막 게임에서 이길 수 있습니다. 그러면 hoof는 유효한 이동을 할 수 없습니다.

나머지 게임은 hoof가 이깁니다.

예제1

  1. 예제 1

    입력
    9 10
    1 2
    2 3
    3 4
    4 7
    3 5
    1 6
    6 8
    8 9
    9 6
    7 2
    4
    1 5
    1 2
    1 6
    2 4
    
    예상 출력
    BHHB