AT_wupc2012_4 三角パズル

题目描述

在你忙碌的过程中,压缩文件的解压似乎已经完成了。你打开一看,发现了一个包含按直角三角形排列的数列的文本文件。 例如: 7 2 3 1 5 4 看起来,这是一个从最上方的顶点出发,每次只能选择往下一层的正下方或右下方的数字,直到底边为止,要求出路径上数字之和的最大值的问题。这很简单。在上面的例子中,选择 $7 \to 3 \to 5$ 是最优的,合计为 $15$。 不过,这样的文件有很多,有的甚至有 100 层的数据。看来,只有解出这个问题才能获得参赛资格……?不对,这其实是一个编程竞赛的邀请函。只要写一个程序,输入数列后能求出最大值就行了。大概邀请你的人也是这么想的。 给定如下按直角三角形排列的数列。从顶点出发,每次只能选择下一层的正下方或右下方的数字,直到底边为止。请计算路径上数字之和的最大值。 例如,给定如下数列: 3 7 4 2 4 6 8 5 9 3 如果正确选择路径,则为: **3** **7** 4 2 **4** 6 8 5 **9** 3 合计为 $3 + 7 + 4 + 9 = 23$。 输入以如下格式从标准输入给出。

输入格式

> $N$ > $a_{1,1}$ > $a_{2,1}\ a_{2,2}$ > $a_{3,1}\ a_{3,2}\ a_{3,3}$ > $\cdots$ > $a_{i,1}\ a_{i,2}\ \cdots\ a_{i,i}$ > $\cdots$ > $a_{N,1}\ a_{N,2}\ \cdots\ a_{N,N}$ - 第 $1$ 行给出直角三角形的高度 $N$($1 \leq N \leq 100$)。 - 第 $i$ 行($2 \leq i \leq N+1$)有 $i-1$ 个用半角空格分隔的整数。 - 数列中的数字满足 $0 \leq a_{i,j} \leq 100$($1 \leq j \leq i \leq N$)。 请输出路径上数字之和的最大值,输出为一行。 在 100 分中,有 50 分的数据满足 $N \leq 20$。

输出格式

输出一行,表示路径上数字之和的最大值。

说明/提示

无。 由 ChatGPT 4.1 翻译