Recherche du chemin maximal dans un triangle numérique

Swift Hard loops

Tâche «Recherche du chemin maximal dans un triangle numérique»

Étant donné un triangle d'entiers. Il faut trouver la somme maximale des nombres sur un chemin allant du sommet à la base, en se déplaçant à chaque étape d'une ligne vers le bas et d'une colonne vers la gauche ou la droite (vers les éléments voisins de la ligne suivante). Implémentez un algorithme en utilisant des boucles et la programmation dynamique. Le triangle est défini par le nombre de lignes N, puis par N lignes de nombres. Affichez un seul nombre – la somme maximale.

Format d\ entrée

La première ligne contient un entier N (1 ≤ N ≤ 100). Ensuite, suivent N lignes, chacune contenant i+1 entiers (où i est le numéro de la ligne, en commençant par 0). Les nombres en valeur absolue ne dépassent pas 10^4.

Format de sortie

Un seul entier – la somme maximale du chemin.

Exemples

Exemple 1

ENTRÉE
4 5 9 6 4 6 8 0 7 1 5
SORTIE
27

Exemple 2

ENTRÉE
1
SORTIE
0

Exemple 3

ENTRÉE
3 1 2 3 4 5 6
SORTIE
10

Exemple 4

ENTRÉE
2 1 2 3 4
SORTIE
4

Exemple 5

ENTRÉE
2
SORTIE
0
main.swift