問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
整数 N と N 個の要素からなる配列 A = [ A_0, A_1, ..., A_{N - 1} ] が与えられます。
あなたは 座標 0 にいる状態から移動を繰り返して 座標 N - 1 にたどり着くことを目指します。
座標 i には A_i が書かれており、座標 pos(0 ≦ pos < N - 1) にいるとき、1 回の移動で以下のどちらかを行うことができます。
・座標 {pos + 1} へ移動する
・A_pos = A_{new_pos} である座標 new_pos(pos < new_pos) へ移動する
座標 A_N にたどり着くために必要な最小の移動回数を出力してください。
入力は以下のフォーマットで与えられます。
N
A_0
A_1
.
.
.
A_{N - 1}
A_N にたどり着くために必要な最小の移動回数を 1 行に出力してください。
最後は改行し、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・2 ≦ N ≦ 100000
・1 ≦ A_i ≦ 100000
・N, A_i は整数
10
1
4
2
4
3
3
4
2
5
5
5
20
4
2
5
1
4
3
8
1
6
2
3
5
1
1
1
3
4
10
8
2
2