14086 - 分发糖果
时间限制 : 1 秒
内存限制 : 128 MB
老师想给孩子们分发糖果。有 N 个孩子站成一条直线,老师会根据每个孩子的表现,预先给他们一个评分(整数)。现在需要按照以下规则给孩子们分配糖果:
- 每个孩子至少分配到 1 颗糖果。
- 相邻的两个孩子中,评分较高的孩子必须获得更多的糖果(即如果相邻两个孩子的评分不同,则评分高的孩子拿到的糖果数必须严格大于评分低的孩子)。
请你计算,在满足上述要求的前提下,老师至少需要准备多少颗糖果。
输入
- 第一行包含一个整数 N ( 1 \le N \le 10^5 ),表示孩子的数量。
- 第二行包含 N 个整数 S_1, S_2, \dots, S_N ( 0 \le S_i \le 10^3 ),表示每个孩子的评分,相邻整数之间用空格隔开。
输出
输出一个整数,表示最少需要的糖果总数。
样例
输入
3 1 0 2
输出
5
提示
样例说明
三个孩子的评分分别为 1, 0, 2。一种最优的分配方案是:
- 第一个孩子(评分 1)分到 2 颗糖果;
- 第二个孩子(评分 0)分到 1 颗糖果;
- 第三个孩子(评分 2)分到 2 颗糖果。
总糖果数为 2 + 1 + 2 = 5 ,且满足所有相邻关系(1 > 0,2 > 0),因此最少需要 5 颗。
数据范围与约定
- 1 \le N \le 10^5
- 0 \le S_i \le 10^3