题目描述
有一座电梯,它的性能如下: 上升一层需要6秒钟,下降一层需要4秒钟,如果要让它停下,它会停5秒钟.现在告诉你它要按顺序到达然后停靠的N个楼层,求它需要的时间. 电梯开始在0层,楼梯共有100层.
输入
多组数据。每组数据第一行为N(N<=50),接下来的N行是它N个停靠的楼层.
输出
只有一行,为所需要的时间.
样例输入
1
2
3
2
3
1
样例输出
17
41
代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,i,sum;
while(~scanf("%d",&n))
{
int a[n];
for(i=0;i<n;i++)
{
cin>>a[i];
if(a[i]<0||a[i]>100)
{
break;
}
}
sum=0;
if(n==1)
{
sum+=a[0]*6+5;
}
else
{
sum=a[0]*6+5;
for(i=0; i<n-1; i++)
{
if(a[i]<a[i+1])
{
sum+=(a[i+1]-a[i])*6;
}
else if(a[i]>a[i+1])
{
sum+=(a[i]-a[i+1])*4;
}
//每到一层就得等五秒才能走,有点离谱
sum+=5;
}
}
cout<<sum<<endl;
}
return 0;
}