#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; }