atcoder#ABC274C. [ABC274C] Ameba

[ABC274C] Ameba

题目描述

あなたはアメーバの観察記録をつけました。

最初 1 1 匹のアメーバがおり、番号は 1 1 です。

観察記録は時系列順に N N 個あり、i i 番目の観察記録は「番号 Ai A_i のアメーバが分裂して消滅し、新たに 2 2 匹のアメーバが生まれ、それらにそれぞれ 2i,2i+1 2i,2i+1 と番号をつけた」というものです。
このとき、アメーバ Ai A_i を アメーバ 2i,2i+1 2i,2i+1 の親と呼びます。

k=1,,2N+1 k=1,\ldots,2N+1 について、アメーバ k k から何代親を遡るとアメーバ 1 1 になるか求めてください。

输入格式

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

N N A1 A_1 A2 A_2 \ldots AN A_N

输出格式

2N+1 2N+1 行出力せよ。k k 行目にはアメーバ k k から何代親を遡るとアメーバ 1 1 になるかを出力せよ。

题目大意

你有一棵树,起始时仅有一个根节点 11

接下来有 nn 次操作。对于第 ii 次操作,编号为 AiA_i 的节点将会增加两个儿子,编号分别为 2i2i2i+12i + 1

对于 i=1,2,...,2N+1i=1,2,...,2N+1,求节点 ii 到根节点的距离。

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

提示

制約

  • 1  N  2× 105 1\ \leq\ N\ \leq\ 2\times\ 10^5
  • 観察記録は矛盾していない。すなわち
    • 1 Ai  2i1 1\leq\ A_i\ \leq\ 2i-1
    • Ai A_i は相異なる整数

Sample Explanation 1

アメーバ 1 1 からアメーバ 2,3 2,3 が生まれ、アメーバ 2 2 からアメーバ 4,5 4,5 が生まれました。 - アメーバ 1 1 0 0 代遡るとアメーバ 1 1 になります。 - アメーバ 2 2 1 1 代遡るとアメーバ 1 1 になります。 - アメーバ 3 3 1 1 代遡るとアメーバ 1 1 になります。 - アメーバ 4 4 1 1 代遡るとアメーバ 2 2 になり、2 2 代遡るとアメーバ 1 1 になります。 - アメーバ 5 5 1 1 代遡るとアメーバ 2 2 になり、2 2 代遡るとアメーバ 1 1 になります。