幅優先探索ドリルのサムネイル
(問題 17)連結グラフ 2 Ruby編(paizaランク A 相当)

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

問題

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

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

N 行 N 列の行列 A が与えられ、i (1 ≦ i ≦ N) 行目 j (1 ≦ j ≦ N) 列目が 1 のとき、頂点 i と頂点 j が辺で結ばれていることを意味します。

それぞれの頂点において、頂点 1 からの距離を出力してください。

入力される値

N
A_{1,1} A_{1,2} ... A_{1,N}
A_{2,1} A_{2,2} ... A_{2,N}
...
A_{N,1} A_{N,2} ... A_{N,N}


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

1 + i (1 ≦ i ≦ N) 行目には N 個の整数 A_{i,1}, A_{i,2}, ..., A_{i,N} が与えられます。

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


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

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

i (1 ≦ i ≦ N) 行目には頂点 i と頂点 1 の距離を出力してください。

条件

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

  • 2 ≦ N ≦ 100

  • 0 ≦ A_{i,j} ≦ 1 (1 ≦ i, j ≦ N)

  • A_{i,i} = 0 (1 ≦ i ≦ N)

  • A_{i,j} = A_{j,i} (1 ≦ i, j ≦ N)

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

    5
    0 1 0 0 1
    1 0 1 0 0
    0 1 0 1 0
    0 0 1 0 1
    1 0 0 1 0

    出力例1

    0
    1
    2
    2
    1

    入力例2

    3
    0 1 1
    1 0 1
    1 1 0

    出力例2

    0
    1
    1

    問題一覧へ戻る

    1. paizaトップ
    2. レベルアップ問題集
    3. 幅優先探索ドリル(言語選択)
    4. 問題一覧 Ruby編
    5. (問題 17)連結グラフ 2 Ruby編
    ページの先頭へ戻る