Search for the maximum path in a numeric triangle

Swift Hard loops

任务 «Search for the maximum path in a numeric triangle»

给定一个由整数组成的三角形。需要找到从顶点到底部的路径上的最大数字和,每一步向下移动一行,并向左或向右移动一列(到下一行的相邻元素)。请使用循环和动态规划实现算法。三角形由行数 N 和接下来的 N 行数字给出。输出一个数字——最大和。

输入格式

第一行包含一个整数 N(1 ≤ N ≤ 100)。接下来有 N 行,每行包含 i+1 个整数(其中 i 是行号,从 0 开始)。每个数的绝对值不超过 10^4。

输出格式

一个整数 – 路径的最大总和。

示例

示例 1

输入
4 5 9 6 4 6 8 0 7 1 5
输出
27

示例 2

输入
1
输出
0

示例 3

输入
3 1 2 3 4 5 6
输出
10

示例 4

输入
2 1 2 3 4
输出
4

示例 5

输入
2
输出
0
main.swift