Description
春春幼兒園舉辦了一年一度的“積木大賽”。今年比賽的內容是搭建一座寬度為?n?的大廈,大廈可以看成由?n?塊寬度為?1?的積木組成,第?i?塊積木的最終高度需要是?hi?。
在搭建開始之前,沒有任何積木(可以看成?n?塊高度為?0?的積木)。接下來每次操作,小朋友們可以選擇一段連續區間?[l,r],然后將第?L?塊到第?R?塊之間(含第?L?塊和第?R?塊)所有積木的高度分別增加?1。
小 M 是個聰明的小朋友,她很快想出了建造大廈的最佳策略,使得建造所需的操作次數最少。但她不是一個勤于動手的孩子,所以想請你幫忙實現這個策略,并求出最少的操作次數。
Input
包含兩行,第一行包含一個整數?n,表示大廈的寬度。
第二行包含?n?個整數,第?i?個整數為?hi?。
Output
建造所需的最少操作數。
Sample Input 1?
5 2 3 4 1 2
Sample Output 1?
5
Hint
【樣例解釋】
其中一種可行的最佳方案,依次選擇:[1,5],[1,3],[2,3],[3,3],[5,5]。
【數據范圍】
- 對于?30%?的數據,有?1≤n≤10;
- 對于?70%?的數據,有?1≤n≤1000;
- 對于?100%?的數據,有?1≤n≤100000,0≤hi?≤10000。
AC:
#include<cstring>
#include<iostream>
using namespace std;
int n,a[100500],sum=0,t=0;
int main(){cin>>n;for(int i=0;i<n;i++){cin>>a[i];if(a[i]>t){sum+=a[i]-t;}t=a[i];}cout<<sum;return 0;
}