P17012 [GESP202606 六级] 条形蛋糕

题目描述

寒假到了,小杨同学打算找一份兼职,顺便体验一下打工人的生活。 小杨同学给一家蛋糕店发送了一份自己的简历,希望可以在寒假来这里帮忙。店长最近正好遇到了一个难题:店里每天会做一条长条蛋糕,但是不同长度的蛋糕块卖出的价格不同,应该怎么分才能卖得最多呢? 有趣的是店长曾经学习过计算机专业。他最近对动态规划算法很感兴趣,于是打算用这个问题考一考小杨同学,问题如下: - 给定一条长度为 $n$ 的长条蛋糕和一个价格表,该价格表表示长度为 $i$ ($i = 1, 2, \dots, n$) 的蛋糕块的价格为 $p_i$。求蛋糕的分割方案,使得总销售价格最大,注意**蛋糕块的长度必须为整数。**

输入格式

第一行一个正整数 $n$ ($1 \le n \le 10^3$),表示长条蛋糕的总长度。 第二行 $n$ 个正整数 $p_1, p_2, \dots, p_n$ ($1 \le p_i \le 10^5$),表示不同长度蛋糕块的价格。

输出格式

一行一个正整数,表示最大总销售价格。

说明/提示

### 样例解释 第一个样例中,长度为 $1$ 的蛋糕价值为 $1$,长度为 $2$ 的蛋糕价值为 $5$,长度为 $3$ 的蛋糕价值为 $8$,长度为 $4$ 的蛋糕价值为 $9$; 总长度为 $4$ 的长条蛋糕,有 $\{4\}, \{1, 3\}, \{2, 2\}, \{1, 1, 2\}, \{1, 1, 1, 1\}$ 五种本质不同的分法。 其对应的总销售价格分别为 $9, 9, 10, 7, 4$,故最大总销售价格为 $10$。 第二个样例中,长度为 $10$ 的长条蛋糕,销售价格最大的分法为 $\{10\}$,最大总销售价格为 $30$。