国纬平时最喜欢做的事情的就是在马路上溜达,这条马路上有 n 座房子,编号从 1-n ,国纬喜欢从编号为 1 的房子出发,将所有的房子都参观一遍。从 i 号房子走到 j 号房子,国纬需要花费 abs(i-j) 单位的体力,如果沿着这条马路一直走,国纬将十分疲惫。
幸运的是,每座房子的面前都有一个秘密通道,秘密通道单向通往编号为 ai 的房子,并且只需要 1 点体力。请你帮助国纬找出从 1 号房子到其他所有房子最小的体力花销。
国纬平时最喜欢做的事情的就是在马路上溜达,这条马路上有 n 座房子,编号从 1-n ,国纬喜欢从编号为 1 的房子出发,将所有的房子都参观一遍。从 i 号房子走到 j 号房子,国纬需要花费 abs(i-j) 单位的体力,如果沿着这条马路一直走,国纬将十分疲惫。
幸运的是,每座房子的面前都有一个秘密通道,秘密通道单向通往编号为 ai 的房子,并且只需要 1 点体力。请你帮助国纬找出从 1 号房子到其他所有房子最小的体力花销。
第一行包含一个整数 n(1<=n<=2000000),代表街道上房子的数量。 第二行包含 n 个整数 a1,a2..an (i<=ai<=n),代表秘密通道可以从 房子 i 单向通往房子 ai。
第一行输出 n 个整数 m1,m2..mn,其中 mi 代表从 1 号房子走到 i 号房子的最小体力。
3 2 2 3
0 1 2