1020:电梯升降分数: 5
题目描述
某城市最高的建筑只有一部电梯。一份电梯升降任务表由N个正整数组成,这些数字表示电梯按照给定的顺序停留的楼层号。
电梯升一层花费6秒钟,降一层花费4秒钟,并且每次停留花费5秒钟。
对于每一份任务表,你要计算出完成全部升降任务所花费的总时间。一开始,电梯在第0层,并且最终完成任务时电梯不必一定返回到0层。
输入格式
有多组测试样例。每组测试样例包含一个正整数N,接下来是N个正整数。
在输入中,所有的数字都小于100。当N=0时,表示输入结束。
输出
对于每一组测试样例,在一行中输出总时间。
样例输入
1 2
3 2 3 1
0
样例输出
17
41
提示[+]
*** 提示已隐藏,点击上方 [+] 可显示 ***
虽然这个题目很简单,但是当时也是卡了我很久的
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int i,j,k,n;
int a,b,c,s;
while(scanf("%d",&n)!=EOF)
{
if(n==0)
break;
a=0;
s=0;
c=0;
for(i=0;i<n;i++)
{
scanf("%d",&b);
if(b>a)
{
s=s+(b-a)*6;
}
else
if(b<a)
{
s=s+(a-b)*4;
}
a=b;
c++;
}
printf("%d\n",s+c*5);
}
return 0;
}