1008 Elevator
题目大意
电梯升降时间问题,有特殊的升降时间限制,只需按部就班算上即可,其实感觉电梯算法更难一些。
算法思想
- 有个当前电梯楼层,每次到一个预定序列时,需要判断时升还是降
- 注意每个时间规则
- 考虑全面,如果电梯不动,那么也要加5
- 没啥特殊点,写出来就是满分
代码
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int n;
int now = 0;//当前电梯
int i;
int sum=0;//统计总时间
cin >> n;
vector<int>order;
for (i = 0; i < n; i++)
{
int a;
cin >> a;
order.push_back(a);
if (order[i] > now)//升梯
{
sum += (order[i] - now) * 6;
}
else if (order[i] < now)//降梯
{
sum += (now - order[i]) * 4;
}
else//不动的时候,为了完美
{
sum += 0;
}
sum += 5;//停5秒
now = order[i];//更新now
}
cout << sum;
}