AT_dwacon2018_prelims_e ニワンゴくんの家探し

Description

[problemUrl]: https://atcoder.jp/contests/dwacon2018-prelims/tasks/dwacon2018_prelims_e **これはインタラクティブな問題です。** dwango社員のニワンゴくんは $ N $ 頂点の木に住んでいます。 この木の頂点には $ 1 $ から $ N $ までの番号がついています。 この木の $ i $ 番目の辺は頂点 $ a_i $ と頂点 $ b_i $ を双方向につなぐ長さ $ 1 $ の辺です。 ニワンゴくんは **どの頂点の次数も $ 5 $ 以下である** ことを知っています。 この木のいずれかの頂点にニワンゴくんの家がありますが、ニワンゴくんは家がどこにあるかを忘れてしまいました。 ニワンゴくんは自作のプログラムに最大で $ Q $ 回質問を行って、家のある頂点を特定したいです。 プログラムに $ 2 $ つの頂点の番号 $ u,v $ を渡すと、家のある頂点から近い方の頂点の番号が表示されます。 ただし、どちらの頂点も家のある頂点から同じ距離にある場合は `0` が表示されます。 ### Input & Output Format 最初に、標準入力から以下の形式で入力が与えられる: > $ N $ $ Q $ $ a_1 $ $ b_1 $ $ : $ $ a_{N-1} $ $ b_{N-1} $ その後、以下の形式で質問を出力せよ: > ? $ u $ $ v $ ここで、$ u,v $ は $ 1 $ 以上 $ N $ 以下の整数でなくてはならない。 次に、質問の答えが標準入力から以下の形式で与えられる: > $ ans $ ここで、$ ans $ は $ u,v,0 $ のいずれかである。 それぞれの値は以下のことを表す。 - $ u $:$ u $ と $ v $ のうち、家のある頂点に近いのは $ u $ である - $ v $:$ u $ と $ v $ のうち、家のある頂点に近いのは $ v $ である - $ 0 $:$ u $ と $ v $ は、家のある頂点から同じ距離にある 最後に、答えを以下の形式で出力せよ: > ! $ x $ ここで $ x $ は家のある頂点でなくてはならない。

Input Format

N/A

Output Format

N/A

Explanation/Hint

### 制約 - $ 2\ \leq\ N\ \leq\ 2{,}000 $ - $ Q\ =\ 14 $ - $ 1\ \leq\ a_i,b_i\ \leq\ N $ - 与えられるグラフは木 - どの頂点の次数も $ 5 $ 以下 ### 部分点 - どの頂点の次数も $ 2 $ 以下であるようなデータセットに正解した場合、$ 400 $ 点が与えられる。 ### ジャッジ - **出力のあと、標準出力を flush せよ。**従わない場合 `TLE` の可能性がある。 - 答えを出力した後、プログラムをすぐに終了せよ。従わない場合のジャッジの挙動は定義されていない。 - 出力の答えが間違っている場合の挙動は定義されていない( `WA` とは限らない)。 ### 入出力例 これは以下のような木において、頂点 $ 3 $ にニワンゴくんの家がある場合の入出力例です。 ![9a1e6749a8c427dfca8d1bb6d28204c8.png](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_dwacon2018_prelims_e/4f322685207ec3940c0472cdab509b0352c0a3e0.png) Input Output 6 14 1 2 5 2 3 1 3 6 1 4 ? 4 5 4 ? 1 6 0 ? 6 5 6 ! 3- 頂点 $ 4,5 $ のうち、頂点 $ 3 $ に近いのは頂点 $ 4 $ なので $ 4 $ が表示されます。 - 頂点 $ 1,6 $ は頂点 $ 3 $ から同じ距離にあるため、$ 0 $ が表示されます。 - 頂点 $ 6,5 $ のうち、頂点 $ 3 $ に近いのは頂点 $ 6 $ なので $ 6 $ が表示されます。 - 家がある頂点が $ 3 $ だと回答しました。$ 14 $ 回以下の質問で正しい答えを出力したため、正解となります。