わかさぎのブログ

プログラミング、Atcoderの勉強とか

AtCoder Beginner Contest 116 C - Grand Garden

N=int(input())
H=list(map(int,input().split()))

inf=1000
ans=0
def func(L,R):
    global H,ans
    if L>=R: return
    
    mi=inf
    for i in range(L,R): mi=min(mi,H[i])
    ans+=mi
    for i in range(L,R): H[i]-=mi
    
    zero=[]
    zero.append(-1)

    for i in range(L,R):
        if H[i]==0:
            zero.append(i)
    zero.append(R)

    n=len(zero)

    for i in range(n-1):
        func(zero[i]+1,zero[i+1])

func(0,N)

print(ans)