【问题描述】
我们城里最高的建筑物只有一个电梯。请求列表是由n个正数组成的。数字表示电梯在哪个楼层按指定的顺序停车。电梯上一层要6秒,下一层楼要4秒。电梯每站停留5秒。
对于给定的请求列表,需要计算用于满足列表中请求的总时间。电梯一开始就在零层,当满足要求时不必返回地面。
【输入形式】
每个输入包含一个测试用例。每个案例输入一个正整数n,然后是n个正数。输入的所有数字都小于100。
【输出形式】
对于每个测试用例,在一行上打印总时间。
【样例输入】
3 2 3 1
【样例输出】
41
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n]; //定义数组a存储目标层数
for(int i=0;i<n;i++) //输入数据
{
cin>>a[i];
}
int time; //定义运用时间
time=a[0]*6+5; //初始时间为上升到a[0]的时间+停留时间5秒
for(int x=1;x<n;x++)
{
if((a[x]-a[x-1])>0) //判断接下来是上升还是下降
{
time=time+(a[x]-a[x-1])*6; //若上升,时间+楼层差*6
}
else if((a[x]-a[x-1])<0)
{
time=time+(a[x-1]-a[x])*4; //若下升,时间+楼层差*4
}
time=time+5; //最后加上停留时间5秒
}
cout<<time;
return 0;
}