Búsqueda del camino máximo en un triángulo numérico

Swift Hard loops

Tarea «Búsqueda del camino máximo en un triángulo numérico»

Dado un triángulo de números enteros. Se necesita encontrar la suma máxima de números en un camino desde la cima hasta la base, moviéndose en cada paso una fila hacia abajo y una columna hacia la izquierda o hacia la derecha (a los elementos adyacentes de la siguiente fila). Implemente un algoritmo usando bucles y programación dinámica. El triángulo se define por la cantidad de filas N y luego N filas de números. Imprima un número: la suma máxima.

Formato de entrada

La primera línea contiene un número entero N (1 ≤ N ≤ 100). A continuación, siguen N líneas, cada una con i+1 números enteros (donde i es el número de fila, comenzando desde 0). Los números en valor absoluto no superan 10^4.

Formato de salida

Un número entero – la suma máxima del camino.

Ejemplos

Ejemplo 1

ENTRADA
4 5 9 6 4 6 8 0 7 1 5
SALIDA
27

Ejemplo 2

ENTRADA
1
SALIDA
0

Ejemplo 3

ENTRADA
3 1 2 3 4 5 6
SALIDA
10

Ejemplo 4

ENTRADA
2 1 2 3 4
SALIDA
4

Ejemplo 5

ENTRADA
2
SALIDA
0
main.swift