首页 > 试题广场 >

分糖果问题进阶问题

[编程题]分糖果问题进阶问题
  • 热度指数:780 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
一群孩子做游戏,现在请你根据游戏得分来发糖果,要求如下:
1. 每个孩子不管得分多少,起码分到一个糖果。
2. 任意两个相邻的孩子之间,得分较多的孩子必须拿多一些糖果。
3. 任意两个相邻的孩子之间的得分如果一样多,糖果数必须相同
给定一个数组arr代表得分数组,请返回最少需要多少糖果。


输入描述:
第一行一个整数N表示数组大小
接下来一行N个整数表示数组内的元素


输出描述:
输出一个整数表示答案
示例1

输入

3
1 2 2

输出

5

说明

最优分配方案为1, 2, 2
示例2

输入

13
0 1 2 3 3 3 2 2 2 2 2 1 1

输出

30

说明

最优的分配方案为
1 2 3 4 4 4 2 2 2 2 2 1 1

备注:

这道题你会答吗?花几分钟告诉大家答案吧!