Análise recursiva de árvore binária com memoização
Swift
Hard
functions
Tarefa «Análise recursiva de árvore binária com memoização»
Escreva uma função que recebe uma árvore binária, representada como um array de inteiros (percurso por nível, null é denotado como 0), e retorna a soma máxima dos valores dos nós da raiz até a folha, desde que seja possível pular no máximo dois nós consecutivos no caminho. Use uma função recursiva com memoização para um cálculo eficiente. A árvore contém até 1000 nós, valores de -100 a 100.
Formato de Entrada
Primeira linha: um inteiro n (1 ≤ n ≤ 1000) — número de elementos no array. Segunda linha: n inteiros separados por espaço — representação por nível da árvore (0 denota ausência de nó).
Formato de Saída
Um único inteiro — a soma máxima da raiz até a folha considerando a possibilidade de pular no máximo dois nós consecutivos.
Exemplos
Exemplo 1
ENTRADA
3
ab
bc
ca
SAÍDA
6
Exemplo 2
ENTRADA
1
10
SAÍDA
10
Exemplo 3
ENTRADA
5
10 5 15 0 0
SAÍDA
25
Exemplo 4
ENTRADA
2
abc
def
SAÍDA
0
main.swift