幅優先探索ドリルのサムネイル
(問題 14)木の頂点 1 Swift編(paizaランク A 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

整数 N が与えられます。N 個の頂点と N - 1 個の辺があるグラフを与えられます。

i (1 ≦ i ≦ N - 1) 番目の辺は頂点 a_i と頂点 b_i を結んでいます。

木の直径は 2 つの頂点間の距離で最も大きい値です。2 つの頂点間の距離が木の直径となるあるペアのうち、片方は頂点 S であることが保証されます。

木の直径を求めてください。

入力される値

N S
a_1 b_1
a_2 b_2
...
a_{N - 1} b_{N - 1}


1 行目には 2 つの整数 N, S が与えられます。

1 + i (1 ≦ i ≦ N - 1) 行目には 2 つの整数 a_i, b_i が与えられます。

入力は合計で N 行からなり、入力値最終行の末尾に改行が 1 つ入ります。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

答えを 1 行で出力してください。

条件

すべてのテストケースにおいて、以下の条件をみたします。

  • 2 ≦ N ≦ 100

  • 1 ≦ S ≦ N

  • 1 ≦ a_i, b_i ≦ N (1 ≦ i ≦ N - 1)

  • a_i ≠ b_i (1 ≦ i ≦ N - 1)

  • 2 つの頂点間の距離が木の直径となるあるペアのうち、片方は頂点 S である

  • 与えられるグラフは木グラフ
  • 入力例1

    5 5
    1 2
    2 4
    4 3
    3 5

    出力例1

    4

    入力例2

    3 2
    1 2
    1 3

    出力例2

    2

    問題一覧へ戻る

    1. paizaトップ
    2. レベルアップ問題集
    3. 幅優先探索ドリル(言語選択)
    4. 問題一覧 Swift編
    5. (問題 14)木の頂点 1 Swift編
    ページの先頭へ戻る