题目:
![](https://img-blog.csdnimg.cn/direct/b02672534c6e4b0ba35e7b454680380e.png)
![](https://img-blog.csdnimg.cn/direct/e6dc6985ce6c41a299527e33d560e16e.png)
题解:
#include <iostream>
using namespace std;
//L[i]表示第i个数的左边有几个连续下降的数(过程中可以有相等的数字,但是只记录不重复的数字的数量),
//R[i]则表示第i个数右边有几个连续下降的数(也是可以相等但是不记录)。
int n, ans, A[10005], L[10005], R[10005];
int main()
{
cin >> n; //盆盆奶数量
//初始化熊猫体重数组
for (int i = 1; i <= n; i++)
cin >> A[i];
//计算第i个数的右边有几个连续下降的数
for (int i = 1; i < n; i++)
{
int j = i;
//保证不越界 且 连续递减或相等
while (j + 1 <= n && A[j] >= A[j + 1])
{
//如果有递减的则计数
if (A[j] > A[j + 1])
++R[i];
++j;
}
}
//计算第i个数的左边有几个连续下降的数
for (int i = n; i > 1; i--)
{
int j = i;
//保证不越界 且 连续递减或相等
while (j - 1 >= 1 && A[j] >= A[j - 1])
{
//如果有递减的则计数
if (A[j] > A[j - 1])
++L[i];
--j;
}
}
//对于每一只熊猫,取L[i]和R[i]中较大的那个数*100+200,就是这只熊猫应该喝的牛奶的毫升数。
// 最后计算他们的总和就可以啦
for (int i = 1; i <= n; i++)
ans += max(L[i], R[i]) * 100 + 200;
cout << ans;
return 0;
}