#include <stdio.h>

int cost(int* arr,int n);
int main() {
   int n=0;
   scanf("%d",&n);
   int arr[100000]={0};
   for(int i=0;i<n;i++)
   {
    scanf("%d",&arr[i]);
   }
   int ret=0;
   ret=cost(arr,n);
   printf("%d",ret);
    return 0;
}
int cost(int* arr,int n)
{
    int dp[10001]={0};
    if(n==1)
    return 0;
    else if(n==2)
    return 0;
    else
    {
        dp[0]=0;
        dp[1]=0;
        for(int i=2;i<n;i++)
        {
            dp[i]=dp[i-1]+arr[i-1]<dp[i-2]+arr[i-2]?dp[i-1]+arr[i-1]:dp[i-2]+arr[i-2];
        }
       return dp[n-1]+arr[n-1]<dp[n-2]+arr[n-2]?dp[n-1]+arr[n-1]:dp[n-2]+arr[n-2];
    }
     
}

当走到第n阶台阶时,可以是从第n-1阶台阶上来的,也可以是从第n-2阶台阶上来的,这时候就需要考虑是从n-1阶台阶上来时花费的少还是从n-2阶台阶上来时花费较少,所有使用一个三目比较符进行比较大小。最后应为当n=1或2的时候,不需要花钱,需要初始化dp[0],与dp[1].