3482 - 2014-Freshman-09-Elevator
有一天,小明来到综B,看到保安在那里愁眉哭脸。小明好奇的走上去看了看,保安的手里有一份电梯升降任务表,由N个正整数组成,这些数字表示电梯按照给定的顺序停留的楼层号。电梯升一层花费5秒钟,降一层花费4秒钟,并且每次停留花费10秒钟。对于每一份任务表,你要计算出完成全部升降任务所花费的总时间。一开始,电梯在第0层,并且最终完成任务时电梯不必一定返回到0层。你能帮助保安算出完成全部升降任务所花费的总时间吗?
题目输入
有多组测试样例。每组测试样例包含一个正整数N,接下来是N个正整数。
在输入中,所有的数字都小于100。当N=0时,表示输入结束。
题目输出
对于每一组测试样例,在一行中输出总时间。
输入/输出样例
题目输入
1 2 3 2 3 1 0
题目输出
20 53
C语言解答
int main(int argc, char* argv[]) {int N,sum,i,a[101]; while(~scanf("%d",&N)) {if(N==0)break; for(i=0;i<N;i++){scanf("%d",&a[i]);} sum=a[0]*5+10*N; for(i=0;i<N-1;i++){if(a[i]<a[i+1])sum=sum+(a[i+1]-a[i])*5;else sum=sum+(a[i]-a[i+1])*4;} printf("%d\n",sum); } return 0; }
C++解答
#include<stdio.h> int main() { int i,sum,n; int a[100]; while(scanf("%d",&n)!=EOF) { if(n==0) break; sum=0; for(i=0;i<n;i++) scanf("%d",&a[i]); sum+=10*n; for(i=0;i<n;i++) { if(i==0) sum+=a[i]*5; else if(a[i]>a[i-1]) sum+=(a[i]-a[i-1])*5; else sum+=(a[i-1]-a[i])*4; } printf("%d\n",sum); } return 0; }