1. 程式人生 > >NOIP2018(積木大賽/鋪設道路)_暴力一邊推

NOIP2018(積木大賽/鋪設道路)_暴力一邊推

題目描述

春春是一名道路工程師,負責鋪設一條長度為 nn 的道路。

鋪設道路的主要工作是填平下陷的地表。整段道路可以看作是 nn 塊首尾相連的區域,一開始,第 ii 塊區域下陷的深度為 d_idi​ 。

春春每天可以選擇一段連續區間[L,R][L,R] ,填充這段區間中的每塊區域,讓其下陷深度減少 11。在選擇區間時,需要保證,區間內的每塊區域在填充前下陷深度均不為 00 。

春春希望你能幫他設計一種方案,可以在最短的時間內將整段道路的下陷深度都變為 00 。

輸入輸出格式

輸入格式:

 

輸入檔案包含兩行,第一行包含一個整數 nn,表示道路的長度。 第二行包含 nn 個整數,相鄰兩數間用一個空格隔開,第ii 個整數為 d_idi
 。

輸出格式:

輸出檔案僅包含一個整數,即最少需要多少天才能完成任務。

輸入樣例
6   
4 3 2 5 3 5 
輸出樣
9

  

對於 30\%30% 的資料,1 ≤ n ≤ 101≤n≤10 ;
對於 70\%70% 的資料,1 ≤ n ≤ 10001≤n≤1000 ;

對於 100\%100% 的資料,1 ≤ n ≤ 100000 , 0 ≤ d_i ≤ 100001≤n≤100000,0≤di​≤10000 。

 1 #include<bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 int o[100010];
 6 
 7 int main()
 8 
 9 {
10 
11     int a,sum=0;
12 
13     cin>>a;
14 
15     sum=0;
16 
17     for(int b=0;b<a;b++)
18 
19     {
20 
21         cin>>o[b];
22 
23         if(b!=0)
24 
25         {
26 
27             if(o[b]>o[b-1]){
28 
29                 sum+=o[b]-o[b-1];
30 
31             }
32 
33         
34 
35         }
36 
37         else
38 
39         sum+=o[0];
40 
41     }
42 
43     cout<<sum;
44 
45     return 0;
46 
47 }

萌新上路 不喜勿噴

&n