二分木は完全か?
与えられた二分木が完全かどうかを判定してください。
二分木が「完全」であるとは、最下層のノードができるだけ左から詰めて配置されており、それ以外のすべてのレベルが完全に埋まっている状態を指します。
以下に示した2つの木はいずれも完全二分木の例です。


入力
入力は、スペースで区切られた整数列として与えられます。これらは二分木の各ノードの値を表しており、ノードの列挙順は前述のとおり、左側の部分木から順に右側へとたどる形で示されます。値が 0 の場合、そのノードは存在しないことを意味します。与えられる二分木は有効であることが保証されています。
出力
もし二分木が完全ならば "Yes"、そうでなければ "No" を出力してください。
例
入力 | 出力 |
1 2 3 4 5 8 9 0 0 0 0 0 0 6 7 0 0 0 0 | Yes |
1 2 3 4 5 8 0 0 0 0 0 6 7 0 0 0 0 | Yes |
1 2 3 4 5 0 0 0 0 6 7 0 0 8 9 0 0 0 0 | No |
1 2 3 4 5 0 0 7 8 0 0 0 0 0 6 0 0 | No |
解説
- 例 1 は、最下層が左から詰めて配置されているため完全な二分木です。

- 例 2 も、最下層が左から詰めて配置されているため完全な二分木です。

- 例 3 は、最左端から順に埋まっていないため完全な二分木ではありません。
.png?table=block&id=18a2c681-664d-81e9-b46a-cd87e4923fb3&cache=v2)
- 例 4 は、やはり左から順に埋まっていないため完全な二分木ではありません。
.png?table=block&id=18a2c681-664d-81b0-a1f6-e3025eaf592c&cache=v2)
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB