杭厦地区实习生机考体验测试2015(电梯题)
电梯系统
考生需要模拟实现一个简单的电梯控制系统,对各个楼层的上下楼请求进行处理,给出电梯的模拟运行轨迹(依次输出电梯每次开门时所在的楼层号)。
规则
1.系统中仅有1部电梯运行。
2.楼层最高是8楼,电梯在[1,8]楼间运行,电梯所在的初始楼层号由输入设定。
3.电梯载客不考虑人数限制。
4.乘客对电梯的请求集成在一条Request命令(详见后面的解释)中,与实际生活电梯的请求方式不一样。
5.如果电梯状态为上行,并且电梯当前所在楼层存在上行请求或电梯当前楼层以上的楼层存在请求,则在这些请求全部处理完成前电梯保持运行状态为上行。
如果电梯状态为下行,并且电梯当前所在楼层存在下行请求或电梯当前楼层以下的楼层存在请求,则在这些请求全部处理完成前电梯保持运行状态为下行。
例如:电梯由5楼上行到6楼,如果6楼有请求A(要求从6楼到8楼)和B(要求从6楼到2楼),两者的命令输入时间都小于或者等于电梯到达6楼的时间,则此时只会处理请求A,不会处理请求B,请求B需要等到电梯下行时才处理。
6.电梯停靠上下客不消耗时间,仅有电梯移动才消耗时间。电梯移动(上或下)一个楼层消耗1个时间单位。系统初始时间为1。
8.乘客进出电梯严格按照输入命令进行,未到目的楼层中途出电梯的情形不需要考虑。
命令格式说明
(1)Request的格式为:
SrcFloor-DestFloor-ReqTime
解释:
SrcFloor:乘客所在源楼层号,取值范围[1,8]的正整数
DestFloor:乘客希望到达的目标楼层号,取值范围[1,8]的正整数
ReqTime:乘客发起请求的时间,取值为正整数。
SrcFloor、DestFloor、ReqTime之间以“-”隔开
(2)请求列表的格式为:
Request1,Request2,Request3,…,RequestN
各Request之间以英文逗号隔开。
由输入保证以下内容(考生不需要检查):
(1) 命令格式的合法性,输入数值的合法性;
(2) 请求列表中,后面请求的时间大于前面请求的时间;
(3) Request的起始楼层和目标楼层不同。
运行时间限制: | 无限制 |
内存限制: | 无限制 |
输入: |
电梯初始楼层号 请求列表 |
输出: |
电梯的运行轨迹(即依次输出电梯每次开门时所在的楼层号,各楼层号间以“-”分隔) |
样例输入: |
1 3-5-1,8-1-2,5-2-3 |
样例输出: |
3-5-8-5-2-1 |