Nodos con el puntaje más alto

Tiempo límite 2 s
Memoria límite 256 MB
Casos de prueba 9
Dificultad Medio Algoritmos
Mostrar (2) ÁrbolesDFS
Enviar solución

Puntos: 10

Tipos de problema
Lenguajes permitidos
C, C++, Java, Python, Rust

Un árbol binario tiene \(n\) nodos, numerados de \(0\) a \(n - 1\). Si se quita un nodo junto con sus aristas, el árbol se separa en a lo más tres partes no vacías; el puntaje del nodo es el producto de los tamaños de esas partes. Cuenta cuántos nodos tienen el puntaje más alto.

Entrada

La primera línea tiene \(n\) \((2 \le n \le 10^5)\). La segunda tiene \(p_0, \dots, p_{n-1}\). El árbol se da con el arreglo de padres: el padre del nodo \(i\) es \(p_i\), y la raíz es el nodo \(0\), con \(p_0 = -1\). Cada nodo tiene a lo más dos hijos.

Salida

La cantidad de nodos con el puntaje más alto.

Ejemplo 1

Entrada

5
-1 2 0 2 0

Salida

3

Ejemplo 2

Entrada

3
-1 2 0

Salida

2

Ejemplo 3

Entrada

2
-1 0

Salida

2

Comentarios

No hay comentarios por el momento.