public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int cost[] = new int[in.nextInt()];
for (int i = 0; i < cost.length; i++) {
cost[i] = in.nextInt();
}
System.out.println(minCostClimbingStairs(cost));
}
private static int minCostClimbingStairs(int[] cost) {
int fs[] = new int[cost.length+1];
for(int i=2;i<=cost.length;i++){
fs[i]=Math.min(fs[i-1]+cost[i-1],fs[i-2]+cost[i-2]);
}
return fs[cost.length];
}
}
private static int minCostClimbingStairs(int[] cost) {
int fs[] = new int[cost.length+1];
for(int i=2;i<=cost.length;i++){
//这个部分的代码为什么要是小于等于呢,我的fs数组的长度为cost.length,i<cost.length,输出为fs[cost.length-1];但是用例输出就是有错误的
fs[i]=Math.min(fs[i-1]+cost[i-1],fs[i-2]+cost[i-2]);
}
return fs[cost.length];
}//这个部分的代码