atcoder#ABC270C. [ABC270C] Simple path

[ABC270C] Simple path

配点 : 300300

問題文

NN 頂点の木 TT があり、 ii (1iN1)(1\leq i\leq N-1) 番目の辺は頂点 UiU_i と頂点 ViV_i を結んでいます。

TT 上の相異なる 22 頂点 X,YX,Y が与えられるので、 頂点 XX から頂点 YY への単純パス上の頂点(端点含む)を順に列挙してください。

ただし、木上の任意の相異なる 22 頂点 a,ba,b について、aa から bb への単純パスがただ一つ存在することが証明できます。

単純パスとは? グラフ G 上の頂点 X,Y に対して、頂点列 v_1,v_2, \ldots, v_k であって、 v_1=X, v_k=Y かつ、1\leq i\leq k-1 に対して v_iv_{i+1} が辺で結ばれているようなものを頂点 X から頂点 Y への パス と呼びます。 さらに、v_1,v_2, \ldots, v_k がすべて異なるようなものを頂点 X から頂点 Y への 単純パス と呼びます。

制約

  • 1N2×1051\leq N\leq 2\times 10^5
  • 1X,YN1\leq X,Y\leq N
  • XYX\neq Y
  • 1Ui,ViN1\leq U_i,V_i\leq N
  • 入力はすべて整数
  • 与えられるグラフは木

入力

入力は以下の形式で標準入力から与えられる。

NN XX YY

U1U_1 V1V_1

U2U_2 V2V_2

\vdots

UN1U_{N-1} VN1V_{N-1}

出力

頂点 XX から頂点 YY への単純パス上の頂点番号を順に空白区切りで出力せよ。

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

TT は以下のような形であり、頂点 22 から頂点 55への単純パスは 頂点 22 \to 頂点 11 \to 頂点 33 \to 頂点 55 となります。 よって、2,1,3,52,1,3,5 をこの順に空白区切りで出力します。

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

TT は以下のような形です。