【问题描述】
我们城里最高的建筑物只有一个电梯。请求列表是由n个正数组成的。数字表示电梯在哪个楼层按指定的顺序停车。电梯上一层要6秒,下一层楼要4秒。电梯每站停留5秒。
对于给定的请求列表,需要计算用于满足列表中请求的总时间。电梯一开始就在零层,当满足要求时不必返回地面。
【输入形式】
每个输入包含一个测试用例。每个案例输入一个正整数n,然后是n个正数。输入的所有数字都小于100。
【输出形式】
对于每个测试用例,在一行上打印总时间。
【样例输入】
3 2 3 1
【样例输出】
41
#include <iostream>
#include <cmath> //用了一个abs绝对值,其实也可以在前面直接加负号打完才想起
using namespace std;
int main(){
int t;
cin>>t;
int a[t+1]; //定义一个t+1大小的数组,把第一个元素定为0;表示第0层
a[0]=0;
for (int i=1;i<t+1;i++){
cin>>a[i]; //注意这里的i限制条件是i<+1,要将t组数据全部输入
}
int sum=0;
for (int i=1;i<t+1;i++){
if(a[i]-a[i-1]>0){ //后面一层减去前面一层,如果是大于就是上楼;反之下楼
sum+=(a[i]-a[i-1])*6+5;
}
else{
sum+=abs((a[i]-a[i-1]))*4+5;
}
}
cout<<sum;
return 0;
}