积木大赛
[Time Gate]
https://www.luogu.org/problem/P1969
【解题思路】
//把序列分成(a1,..ai)(ai+1,...aj)......(ak,...an)多个非递减序列。
//然后所有段中最大值的和减去除第一段外的段的最小值,化简一下,就出来了
【code】
1 #include <cstdio>
2 #include <iostream>
3 #include <algorithm>
4 using namespace std;
5 int i,n,a[1005],ans;
6 int main(){
7 //freopen("2025.in","r",stdin);
8 //freopen("2025.out","w",stdout);
9 scanf("%d",&n);
10 for(i=1;i<=n;i++)
11 scanf("%d",&a[i]);
12 ans=a[1];
13 for(i=1;i<n;i++){
14 if(a[i+1]>=a[i])ans+=a[i+1]-a[i];
15 else continue;
16 }
17 printf("%d\n",ans);
18 return 0;
19 }