Análisis recursivo de un árbol binario con memoización
Swift
Hard
functions
Tarea «Análisis recursivo de un árbol binario con memoización»
Escribe una función que reciba un árbol binario representado como un array de enteros (recorrido por niveles, null se denota como 0) y devuelva la suma máxima de valores de nodos desde la raíz hasta una hoja, bajo la condición de que se pueden omitir como máximo dos nodos consecutivos en el camino. Utilice una función recursiva con memoización para un cálculo eficiente. El árbol contiene hasta 1000 nodos, con valores de -100 a 100.
Formato de entrada
Primera línea: un número entero n (1 ≤ n ≤ 1000) — la cantidad de elementos en el array. Segunda línea: n números enteros separados por espacios — la representación por niveles del árbol (0 indica la ausencia de un nodo).
Formato de salida
Un único número entero — la suma máxima desde la raíz hasta una hoja, considerando la posibilidad de omitir como máximo dos nodos consecutivos.
Ejemplos
Ejemplo 1
ENTRADA
3
ab
bc
ca
SALIDA
6
Ejemplo 2
ENTRADA
1
10
SALIDA
10
Ejemplo 3
ENTRADA
5
10 5 15 0 0
SALIDA
25
Ejemplo 4
ENTRADA
2
abc
def
SALIDA
0
main.swift