內容 

有一個農場有寬度為n的圍籬, 每個圍籬都有各自的高度 h[1], h[2],...,h[n]

有些圍籬被吹斷了,農場主人要來修補這些圍籬,但他忘記這些壞掉的圍籬原本高度是多少,為了減少成本,他會取斷掉的圍籬位置相鄰左邊和右邊較小的那個高度填上去,問需要多少成本

題目保證不會有兩個相鄰的吹斷圍籬,而穿斷的圍籬有可能位在邊界


輸入說明

輸入包含兩行

第一行有一個正整數 n

第二行有 n 個以空隔分隔的整數 h[1], h[2],...,h[n]

數字範圍

- $3\le n\le100$

- $0\le h[i]\le 100$

子題配分

- (60%): n = 3

- (40%): 無額外限制

輸出說明

輸出一個正整數表示新增的圍籬長度總和


範例輸入1

3

2 0 4

範例輸出1

2

範例輸入2

9

0 5 3 0 6 4 0 1 0

範例輸出2

10


程式

#include <iostream> #include <algorithm> using namespace std; int main() { int n; cin>>n; int h[n+2]={0}; for(int i=1; i<=n; i++){ cin>>h[i]; } int total=0; for(int i=1; i<=n; i++){ int arr[5]={0}; int x; if(h[i]==0){ copy(h+i-1,h+i+2,arr); if(arr[0]>arr[2]&&arr[2]!=0||arr[0]==0) x=arr[2]; else x=arr[0]; total += x; } } cout<<total; return 0; }

說明