1008 电梯
我市最高的建筑只有一部电梯。给定一个由N个正整数组成的请求列表。这些数字表示电梯将按指定顺序停在哪一楼层。电梯上移一层需要6秒,下移一层需要4秒。且电梯每停一次需要停留5秒。
对于给定的请求列表,你需要计算完成列表中的所有请求花费的总时间。电梯一开始停留在第0层,在完成所有请求后不需要返回底层。
输入规范
每个输入文件包含一个测试用例。每个用包含一个正整数N和N个正整数。输入所有数字小于100.
输出规范
对于每个测试用例,在一行中打印总时间。
输入样例
3 2 3 1
输出样例
41
解题思路
需要注意的是如果两次连续的请求在同一层,也需要停留5秒。
AC代码
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int t = 0; //电梯当前所在层数
int sum = 0; //总时间
for(int i = 0; i < n; i++) {
int x;
cin >> x;
if(x > t) { //上楼
sum += (x - t) * 6 + 5;
}else if(x < t) { //下楼
sum += (t - x) * 4 + 5;
}else { //当前层,(话说都在这一层了还坐电梯,^0^)
sum += 5;
}
t = x;
}
cout << sum << endl;
return 0;
}