@thousfeet
2018-05-06T12:54:46.000000Z
字数 897
阅读 1079
c++助教
一栋10层的大楼(楼层编号1-10),设3台无限载重的电梯,初始时电梯停在1层。其中:1号电梯只能停留在奇数层,2号电梯可以各层都停留,3号电梯只停留在第1层和偶数层。电梯移动1层的耗时为1,在某一层停靠的耗时为1(时间初始为0)。电梯不允许未仆先知,必须在时间到了之后才能开始响应这条请求。
为了使得电梯完成接送所有乘客的运行时间最短,请你编写一个程序来进行电梯调度。
输入文件的文件名为 input.txt ,其中:第一行为一个非负整数N,代表乘客的请求数量;接下来N行,描述了这N个请求的信息,格式为请求时刻 起始楼层数 去往楼层。
保证请求时刻是递增的,且同一时刻同一楼层只会有一名乘客发出请求(也即不会出现同时且同楼层的多行输入)。
/*input example*/20 1 21 2 1
输出调度决策,3部电梯分别输出到3个文件。文件名分别为output1.txt、output2.txt和output3.txt,其中:每一行的输出格式为时刻 停靠楼层。(初始时停在0层的状态不输出)
注意:“时刻”指的是在某层楼停靠的时刻,且不算入在该层的停靠时间。
/*onput1.txt为空*//*onput2 example*/1 13 2/*onput3 example*/2 24 1
本次作业依然采用互测形式。代码必须遵循一定的代码规范,要有注释,可读性尽可能好。
提交到Github上的项目需要建立一个名字为3Elevators-scheduling的文件夹,在里面上传本次的作业代码。
一个示例组织目录如下所示(仅为示例,命名、文件数量等未必需要遵守):
/ 3Elevators-scheduling/ main.cpp/ elevator.cpp/ elevator.h.../ BIN/ elevator.exe/ input.txt/ output.txt/ Lib.dll (exe运行需要的动态链接库文件,可以没有)