腾讯(1)
#include <bits/stdc++.h>
using namespace std;
int p[10005],t[10005];//p表示到达第i层的最短时间,到达第i层的方式是爬,t表示到达第i层的最短时间,到达方式是跳
int main(){
int n,x;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&x);
if(i==0){
p[0]=x;
t[0]=0;
}
else if(i==1){
p[1]=min(p[0],t[0])+x;
t[1]=0;
}
else{
p[i]=min(p[i-1],t[i-1])+x;//如果第i层是爬,i-1层有两种可能
t[i]=min(p[i-1],p[i-2]);//如果第i层是跳过来的,第i-1层一定是爬的
}
}
printf("%d",min(p[n-1],t[n-1]));
}