【題目敘述】https://zerojudge.tw/ShowProblem?problemid=g595
【解題想法】陣列
- 題目保證不會有兩個相鄰的吹斷圍籬,而穿斷的圍籬有可能位在邊界
- 在輸入的 n 個圍籬(編號1~n)前後多加兩個虛擬圍籬(編號分別為 0 和 n+1),其高度設為比圍籬可能的高度還大,方便處理。

#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int h[n+2];
h[0] = 105; // -0 ≤ h[i] ≤ 100
h[n+1] = 105;
for (int i = 1; i <= n; i++) {
cin >> h[i];
}
int ans = 0;
for (int i = 1; i <= n; i++) {
if (h[i] == 0) {
ans += max(min(h[i-1], h[i+1]) - h[i], 0);
}
}
cout << ans << "\n";
return 0;
}