l1=int(input()) #分别取出一二行输入的值 l2=list(map(int,input().split())) cost=0 dp=[] #创建dp数组,用于记录到达i层的最小花费 for i in range(l1): #遍历每一层 if i<=1: #第0、1层最少花费就是他们自己,你总不可能1层的最小花费还是0+1层的花费吧 dp.append(l2[i]) #后面的花费就是取前一层或前两层加上本层花费 else:dp.append(min(dp[i-1]+l2[i],dp[i-2]+l2[i])) #最后可能是一步上去或者两步上去,因此要取dp数组倒数两个最小的那个 print(min(dp[-1],dp[-2]))