题目描述
我们城市的最高建筑上只有一部电梯。
给定一个由 N 个整数组成的请求列表。
我们要按照列表指定的顺序,将电梯依次停到各个楼层。
已知,电梯上行一层需要 6 秒,下行一层需要 4 秒,每个停留楼层每次停留 5 秒。
请你求出,将列表给出的所有楼层都按指定顺序完成停留共需多少秒。
电梯开始时位于第 0 层,所有楼层均停留完毕后,电梯不用回归原位置。
补充
可能存在连续在同一楼层停留多次的情况,此时每停留一次就要等待5秒钟。
输入格式
共一行,首先包含一个整数 N,然后包含 N 个正数。
输出格式
输出一个整数,表示所花费的总时间。
数据范围
1≤N≤100,
列表中的数字不会超过 100。
输入样例:
3 2 3 1
输出样例:
41
算法1
这个题目比较简单 就是纯模拟
一开始初始化当前位置是0 然后每接受一个楼层请求 就判断是上升还是下降
加入相应的时间,最后加入请求数*5 (每次请求都要停止等待5秒)
C++ 代码
#include <iostream>
using namespace std;
const int N =150;
int n;
int arr[N];
int main(){
cin >> n;
int curr =0; int ans =0;
for(int i = 0;i < n;i++){
cin >> arr[i];
if(arr[i] >curr){
ans += (arr[i]-curr)*6;
}
if(arr[i]<curr){
ans += (curr-arr[i])*4;
}
curr=arr[i];
}
ans += 5*n;
cout << ans << endl;
return 0;
}