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

int main() {
    int n;
    cin >> n;
    vector<long long> cost(n);
    for (int i = 0; i < n; ++i) cin >> cost[i];

    if (n == 1) {                      // 只有一级台阶,必须踩上去一次
        cout << cost[0] << '\n';
        return 0;
    }

    // dp[i]:踏到第 i 级的最小花费(到达该级时已支付 cost[i])
    long long dp_im2 = cost[0];        // dp[0]
    long long dp_im1 = cost[1];        // dp[1]
    for (int i = 2; i < n; ++i) {
        long long cur = min(dp_im1, dp_im2) + cost[i];
        dp_im2 = dp_im1;
        dp_im1 = cur;
    }
    // 到顶不再收费:从 n-1 或 n-2 跨一步到顶
    cout << min(dp_im1, dp_im2) << '\n';
    return 0;
}