Suche nach dem maximalen Pfad im Zahlendreieck

Swift Hard loops

Aufgabe «Suche nach dem maximalen Pfad im Zahlendreieck»

Gegeben ist ein Dreieck aus ganzen Zahlen. Es soll die maximale Summe der Zahlen auf einem Pfad von der Spitze zur Basis gefunden werden, wobei man in jedem Schritt eine Zeile nach unten und einen Schritt nach links oder rechts (zu den benachbarten Elementen der nächsten Zeile) geht. Implementieren Sie den Algorithmus unter Verwendung von Schleifen und dynamischer Programmierung. Das Dreieck wird durch die Anzahl der Zeilen N und dann N Zeilen mit Zahlen angegeben. Geben Sie eine Zahl aus – die maximale Summe.

Eingabeformat

Die erste Zeile enthält eine ganze Zahl N (1 ≤ N ≤ 100). Danach folgen N Zeilen, in denen jeweils i+1 ganze Zahlen stehen (wobei i die Zeilennummer ist, beginnend bei 0). Die Zahlen überschreiten im Betrag nicht 10^4.

Ausgabeformat

Eine ganze Zahl – die maximale Pfadsumme.

Beispiele

Beispiel 1

EINGABE
4 5 9 6 4 6 8 0 7 1 5
AUSGABE
27

Beispiel 2

EINGABE
1
AUSGABE
0

Beispiel 3

EINGABE
3 1 2 3 4 5 6
AUSGABE
10

Beispiel 4

EINGABE
2 1 2 3 4
AUSGABE
4

Beispiel 5

EINGABE
2
AUSGABE
0
main.swift