14047: Hoof and Brain-Hoof and Brain-USACO22OpenPlatinum


Відправити розв'язок

Бали: 100 (partial)
Time limit: 4.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
Brain****, C, C++, Java, Pascal, Python, v8js

Дано орієнтований граф з \(N\) вершинами і \(M\) дугами (\(2 \leq N \leq 10^5\), \(1 \leq M \leq 2 \cdot 10^5\)). Корови грають у таку гру для двох гравців:

Дві фішки розміщуються на заданому графі. На кожному ходу перший гравець (brain) вибирає фішку, яка має пройти по однією з дуг, що виходять. Інший гравець (hoof) вибирає за якою дугою повинна піти ця фішка. Ці дві фішки ніколи не можуть бути в одній і тій самій вершині. Якщо в якийсь момент hoof не може зробити хід, то виграв brain. Якщо гра продовжується нескінченно - виграв hoof.

Вам даються \(Q\) запитів (\(1 \leq Q \leq 10^5\)), що вказують стартові вершини обох фішок. Для кожного запиту наведіть, який гравець виграє.

Формат вхідних даних

Перший рядок містить \(N\) та \(M\).

Кожен із наступних \(M\) рядків містить по два числа \(a\) і \(b\), що позначають дугу з \(a\) до \(b\).

Заданий граф не містить петель та множинних дуг.

Наступний рядок містить \(Q\).

Кожен з наступних \(Q\) рядків містить два цілих числа \(x\) і \(y\) (\(1\le x,y\le N\) and \(x\neq y\)), що вказують стартові вершини фішок.

Формат вихідних даних

Рядок довжиною \(Q\) де кожен символ B означає, що виграв brain, а символ H означає, що виграв hoof.

Примітка: Час на тест для цього завдання 4 сек (в два рази більше значення за замовчуванням).

Приклад вхідних даних

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

brain може виграти першу гру, вибравши вершину 5 - у hoof немає коректних ходів.

brain може виграти останню гру, вибравши вершину 4 і потім вершину 7, після чого у hoof немає коректних ходів.

Інші ігри виграє hoof.

ОЦІНЮВАННЯ:

  • У тестах 2-3 \(N\le 100\), \(M\le 200\).
  • У тестах 4-9 \(N\le 5000\).
  • У тестах 10-21 немає додаткових обмежень.

Коментарі

Ще немає коментарів.