d063: 3.磚牆
標籤 : 陣列
通過比率 : 5人/6人 ( 83% ) [非即時]
評分方式:
Tolerant

最近更新 : 2024-03-11 09:45

內容

自由小學有一道年代久遠的磚牆,因為有一部分的磚塊脫落,造成牆的高度高低不一,新任校長看到這個情況,希望將這道牆做個簡單的修補,讓牆凹凸的部分不那麼明顯。

他的做法是,針對每個凸點,也就是這個點同時比左右兩邊來得高的,把上面的磚塊拿掉,直到跟左右兩邊比較高的那個一樣高。取下來的磚塊則是拿去填補凹點,也就是這個點同時比左右兩邊來得低的,將這個點的高度填到跟左右兩邊比較低的那個一樣高。另外,牆的左、右兩端點是不用處理的。

由於這道磚牆很長,所以請你幫忙計算,經過上述處理,最後剩餘幾個磚塊或是不足幾個磚塊?

輸入說明

輸入資料的第一行有一個正整數N (3<=N<=10000),代表這道磚牆的長度。第二行有N個正整數Ai (1<=Ai<=10000),代表這個點的高度,也就是由幾個磚塊組成。

輸出說明

請輸出一個整數,代表以上述方式處理完,剩餘的磚塊數,當磚塊數不足時,請以負整數表示。

範例輸入 #1
3
1 2 1
範例輸出 #1
1
範例輸入 #2
5
3 1 4 5 2
範例輸出 #2
-1
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (10%): 1.0s , <1K
公開 測資點#1 (10%): 1.0s , <1K
公開 測資點#2 (10%): 1.0s , <1K
公開 測資點#3 (10%): 1.0s , <1M
公開 測資點#4 (10%): 1.0s , <1M
公開 測資點#5 (10%): 1.0s , <1M
公開 測資點#6 (10%): 1.0s , <1M
公開 測資點#7 (10%): 1.0s , <1M
公開 測資點#8 (10%): 1.0s , <1M
公開 測資點#9 (10%): 1.0s , <1M
提示 :

範例說明:

以範例2來說,凸點只有第4點,高度為5,要調整到跟左邊4一樣的高度,故取走1個磚塊,而凹點也只有第2點,高度為1,調整到跟左邊3一樣的高度,故需要2個磚塊,因此1-2=-1,不足一個磚塊。

另外,判斷凹凸點時,請以一開始的高度判斷,而不是一邊填補一邊判斷,例如 1 5 1 5 1,兩個5都是凸點,而中間的1為凹點。

評分說明:

本題共有三個子題,分數及條件限制如下:

  1. 子題1(30分):N<=100
  2. 子題2(30分):N<=1000
  3. 子題3(40分):無限制
標籤:
陣列
出處:
中女111 [管理者:
sagit (sagit)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」