普及⏱ 1000ms💾 256MB#P5125🏷️ 动态规划

题目描述

登山路线的每个检查点有一个积分值。登山者要从一排检查点中选出一个编号递增且积分严格递增相反——积分严格上升的子序列来挑战:即选出的检查点编号依次增大,且积分值依次增大。

所选检查点的积分之和就是这个挑战的得分。注意:积分多的路线不一定是最优的——例如积分序列 (100,1,2,3) 的最优选择是只走 (100),得 100 分,而不是 (1,2,3) 的 6 分。

给定积分序列,求最大得分。

输入格式

两行: 第一行整数 $N$($1 \le N \le 1000$); 第二行 $N$ 个非负整数,用空格分隔。

输出格式

一行,一个整数:最大上升子序列和。

数据范围

$$1 \le N \le 1000,\quad 0 \le \text{积分} \le 10000$$

样例输入 #1
7
1 7 3 5 9 4 8
样例输出 #1
18
样例输入 #2
4
100 1 2 3
样例输出 #2
100