题目分析:此题很水,没有什么可以说的,每读一个数,就将它与前一个数相减,再根据上升下降的策略,对总时间进行更新即可。
实现代码:

Code
1 #include <stdio.h>
2 #include <iostream>
3 using namespace std;
4
5 int main()
6 {
7 int N,curfloor=0,time=0,tofloor=0,dev=0;
8 while(scanf("%d",&N)!=EOF&&N!=0)
9 {
10 for(int i=0;i<N;i++)
11 {
12 scanf("%d",&tofloor);
13 dev=tofloor-curfloor;
14 if(dev>0)
15 {
16 time+=(dev*6+5);
17 }
18 else
19 if(dev<0)
20 {
21 dev=0-dev;
22 time+=(dev*4+5);
23 }
24 else time+=5;
25 curfloor=tofloor;
26 }
27 cout<<time<<endl;
28 curfloor=0,time=0,tofloor=0,dev=0;
29 }
30 return 0;
31 }
32
题目讨论:此题有一个让人费解的地方,就是如果输入的序列有连续相同的数,那个电梯将停留n*5分钟,真汗,现实中可没有这样的情况吧~~~~~