问题1059--3.等电梯2

1059: 3.等电梯2

[命题人 : ]
时间限制 : 2.000 sec  内存限制 : 128 MB

题目描述

电梯运行规律是这样的:电梯当前如果是上行,它会上行到能运行的最高层(这一层要么是整栋楼的最高层,要么是没人再往上去的那一层)再下行;电梯当前如果是下行,它会下行到能运行的最低层(这一层要么是整栋楼的最低层,要么是没人想再往下去的那一层)再上行。如果行进中间遇到电梯外边按同向请求按钮或者里边的人要停的楼层,它会停下来;如果遇到了电梯外边按了反向请求按钮,同时电梯里边的人没有要停的楼层,它是不会停下来的。

例如,假设楼层最高为10层,最低为1层,你现在第8层按电梯下行按钮,电梯在第7层刚好往第1层方向下行,它会一直往下行。如果此时有人在第5层按下行按钮准备去第1层,那么电梯行至第5层会停下来接人。如果此时再有人在第4层按上行按钮,同时电梯里边没人要在第4层停,那么电梯经过第4层时也不会停下,而是一路向下直到第1层才停下,然后再转向向上路过第4层时才停下接人。如果第4层的人要到第10层,那么电梯上行过程路过你所在的第8层也不会停下(假如电梯里没人要在第8层停),而是一直到了第10层才转向向下路过你在的第8层才停下来接你。

现在已知电梯最低一层为1楼,最高为10楼,电梯行进过程中如果要中途停下,则每次停留时间都是10秒钟,电梯经过两层之间(即一层楼的高度)的时间为2秒。假如你所在的楼层为nn大于等于2且小于等于10),你想下到第1层,按了下行按钮后,除了第1层可能有按上行按钮外,其余各楼层如果有按电梯按钮的都是按下行的按钮,并且知道他们想要去某个楼层(往下行的人不一定都是到第1层,可能去中间某层),此后各楼层都再没有人按电梯按钮了。

请你编程计算一下你要等多少秒才等到电梯。

输入

第一行3个用空格隔开的整数mkn。从左到右,第1个整数m取值-1或者1-1表示电梯此时正往下行,1表示此时电梯正往上行;第2个整数k取值110k不等于nn是你所在楼层),表示此时电梯刚好离开某层楼,并且电梯是空的,即还没接到现在所有已经按电梯按钮的人;第3个整数n表示你所在的楼层n大于等于2且小于等于10

 

第二行10个用空格隔开的整数。分别表示110楼层的人要去的某个楼层,除了第1层对应的数值比1大外(如果第1层按了上行按钮),其余楼层对应的数值都比所在楼层数小,值为0表示该楼层没人按电梯按钮。

【提示】Python读取输入数据时可以这样写:

m,k,n = map(int,input().split())

a = list(map(int, input().split()))

第二行表示读入10个整数存放在一个列表a里待用。

输出

输出等待时间(单位:秒)

样例输入 Copy

-1 5 10
0 0 2 0 0 0 0 1 0 1

样例输出 Copy

42

来源/分类