本题主要考查模拟,贪心,我们可以画出柱状图来分析。当左边的一堆比右边矮,左边的一堆摆完后,右边的还差一点,那么摆放次数s加上两堆的高度差。
代码如下:
#include<iostream>
using namespace std;
int n,sum=0,i,j;
int h[10000001];
int main()
{
cin>>n;
for(i=1;i<=n;i++)cin>>h[i];
sum=h[1];
for(i=1;i<=n;i++)
{
if(h[i+1]>h[i])sum+=h[i+1]-h[i];
}
cout<<sum;
return 0;
}