

#include <bits/stdc++.h>
using namespace std;


int main(){
    int n=3;
    vector<int>v={2,5,8 };
    vector<int>dp(n+1,1000000);
    dp[n]=0;
    dp[0]=v[0];
    //dp[i]=minimum cost to reach ith index.
    for(int i=1;i<=n;i=i+1)
    {
        if(i-2>=0)
        dp[i]=min(dp[i],dp[i-2]+v[i]);
        if(i-1>=0)
        dp[i]=min(dp[i],dp[i-1]+v[i]+v[i+1]);
        //cant directly write dp[i+1]+v[i] because i dont know dp[i+1] yet . We are going from 1 to n. So will reach dp[i+1] by dp[i-1]+cost. 
        //also no consecutive backward move can be made so dont need to consider reaching i+1 from backward jump
    }
    
    cout<<min(dp[n-1],dp[n])<<endl;;
    
    return 0;
}