积木大赛

[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 }

 

posted @ 2019-08-14 14:03  GTR_PaulFrank  阅读(133)  评论(0编辑  收藏  举报