'''
修補圍籬,此程式可以計算出所需的圍籬高度。
源自於2021年11月APCS第一題
題目原述:
有一個農場有寬度為 n 的圍籬, 每個圍籬都有各自的高度 h[1],h[2],⋯,h[n]
有些圍籬被吹斷了,農場主人要來修補這些圍籬,但他忘記這些壞掉的圍籬原本高度是多少,為了減少成本,他會取斷掉的圍籬位置相鄰左邊和右邊較小的那個高度填上去,問需要多少成本
題目保證不會有兩個相鄰的吹斷圍籬,而穿斷的圍籬有可能位在邊界
'''
n=int(input('請輸入圍籬寬度:'))
h=0
a=list(map(int,input('請輸入各圍籬的高度並以空格為分隔:').split()))
if(a[0]==0):
a[0]=a[1]
h=h+a[0]
if(a[n-1]==0):
a[n-1]=a[n-2]
h=h+a[n-2]
for i in range(1,n):
if(a[i]==0):
a[i]=min(a[i-1],a[i+1])
h=h+a[i]
print('所需的圍籬總高度:'+str(h))
elif(a[n-1]!=0):
for i in range(1,n):
if(a[i]==0):
a[i]=min(a[i-1],a[i+1])
h=h+a[i]
print('所需的圍籬總高度:'+str(h))
elif(a[0]!=0):
if(a[n-1]==0):
h=h+a[n-2]
for i in range(n-1):
if(a[i]==0):
a[i]=min(a[i-1],a[i+1])
h=h+a[i]
print('所需的圍籬總高度:'+str(h))
elif(a[n-1]!=0):
for i in range(n):
if(a[i]==0):
a[i]=min(a[i-1],a[i+1])
h=h+a[i]
print('所需的圍籬總高度:'+str(h))