A árvore binária é completa?

É-lhe pedido que determine se a árvore binária fornecida é completa.

Uma árvore binária é completa se todos os níveis da árvore estiverem totalmente preenchidos, exceto o nível mais baixo, cujos nós são ocupados o mais à esquerda possível.

Ambas as árvores apresentadas abaixo são árvores binárias completas.

profound.academy-Binary-tree-5.drawio.png
profound.academy-Binary-tree-6.drawio.png

Entrada

A entrada contém inteiros separados por espaço que representam os valores nos nós da árvore binária. A ordem dos valores é fornecida conforme descrito na declaração anterior (percorrendo sempre da subárvore esquerda para a direita). Um valor de 0 significa que o nó não existe. É garantido que a árvore binária de entrada é válida.

Saída

O programa deve imprimir Yes se a árvore binária for completa, e No caso contrário.

Exemplos

Entrada

Saída

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

Explicação

  1. O Exemplo 1 é uma árvore binária completa, pois o último nível está preenchido da esquerda para a direita

    profound.academy-Binary-tree-5.drawio.png
  1. O Exemplo 2 é uma árvore binária completa, pois o último nível está preenchido da esquerda para a direita

    profound.academy-Binary-tree-6.drawio.png
  1. O Exemplo 3 não é uma árvore binária completa, pois não se encontra preenchido completamente a partir da esquerda

    profound.academy-Binary-tree-3.drawio (2).png
  1. O Exemplo 4 não é uma árvore binária completa, pois não se encontra preenchido completamente a partir da esquerda

    profound.academy-Binary-tree-4.drawio (3).png

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue