/*
题意:
1、给定一定的序列(所有数字不超过100)
2、上升6秒,下降4秒,停留5秒,计算总时间
解题:
1、有一个total时间,初值为0,一个now记录当前层数,一个goal,记录目标层数
2、如果now > goal,则(goal - now ) * 6+ 5
如果goal小于now,则(now - goal)* 4 + 5
如果goal == now,则直接加5
learn && wrong:
1、总是少using namespace std;
2、修改了,dev是不会自动重新编译的,如果运行时上一次的,所以每次还是编译运行吧
3、题解不错,每次都需要更新now,现在的楼层,以及停留在本层是需要的!
*/
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
int num;
cin >> num;
int ans = 0,now =0, goal; //总的时间,现在的楼层,目标楼层
for(int i = 0;i < num;++i){
cin>>goal;
if(now < goal){
ans += (goal - now) * 6 + 5;
now = goal;
}else if(now > goal){
ans += (now - goal) * 4 + 5;
now = goal;
} else{
ans += 5;
now = goal;
}
}
cout<<ans<<endl;
return 0;
}
网友评论