#LAISIR33. 直徑統治者 · 交錯競賽

直徑統治者 · 交錯競賽

🧮 直徑統治者 · 交錯競賽

📝 題目背景:

在智慧之森的最高議會中,兩位統治者候選人 A 與 B 展開了一場儀式競賽。他們輪流在神樹(森林中的一棵無根樹)上放置據點,據說:

誰能最先選出兩個據點,這兩點的距離等於整棵神樹的直徑,就能成為新的統治者。

你被任命為見證者,負責記錄整個競賽過程,並根據據點放置的順序,判定勝負。


🎯 任務說明:

給定一棵無向樹與兩位玩家交錯放置的據點序列,請模擬這場競賽。 若某位玩家的任兩個據點之間的距離達到樹的直徑,即判定該玩家勝出。

若操作結束後仍無人達成目標,輸出 None


📥 輸入格式:

n
a₁ b₁
...
aₙ₋₁ bₙ₋₁
k
x₁
x₂
...
xₖ
  • 第一行一個整數 n(1 ≤ n ≤ 10⁵):樹的節點數
  • 接下來 n-1 行,每行兩個整數 aᵢbᵢ:表示節點 aᵢbᵢ 之間有邊
  • n+1 行為操作次數 k(2 ≤ k ≤ 10⁵)
  • 接下來 k 行,每行一個整數 xᵢ,表示第 i 次操作選擇的節點編號
  • 操作交錯進行:奇數次為玩家 A,偶數次為玩家 B
  • 不會重複選取同一節點作為據點

📤 輸出格式:

  • 若玩家 A 先成功構成一組距離等於直徑的據點對,輸出 A
  • 若玩家 B 先成功,輸出 B
  • 若所有操作後無人達成條件,輸出 None

📘 範例輸入:

5
1 2
1 3
3 4
3 5
4
1
3
4
5

📗 範例輸出:

A