当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。

建议使用的浏览器:

谷歌Chrome 火狐Firefox Opera浏览器 微软Edge浏览器 QQ浏览器 360浏览器 傲游浏览器

3930:Elevator

题目描述
Too worrying about the house price bubble, poor Mike sold his house and rent an apartment in a 50-floor building several months ago. This building has only one elevator because it is a so called “rotten tail building”. There are always a lot of people crowding at the gate of the elevator on every floor. Many people have to climb hundreds of steps in order to save time.

After months of climbing, Mike feels that he can't stand it any more. He wants to sue the building owner. In order to let the judge understand how terrible the situation is, he decides to write a program to simulate the running of the elevator in a day. You'd better let him copy one from you.

At first, the elevator is at the status of “idle”. If the three conditions below are all satisfied at the same time, we say the elevator is at “idle” status:
1) The elevator is stopped.
2) Nobody outside is waiting for the elevator.
3) There is nobody in the elevator or all people in the elevator are just on their destination floor.

There are an up button and a down button at the elevator gate on every floor except that only up button on the first floor, and only down button on the 50th floor. When someone wants to take the elevator, he pushes a button according to the direction he wants to go, and then wait. If the elevator is not moving towards his destination floor, he will not get in even the elevator comes and opens its door. When someone pushes a button, we say that he send a request to the elevator.

When the elevator is idle and then some requests are sent to it, it will move towards the direction from which the first request is sent. If more than one request is sent at the same time, the requests sent form the same floor where the elevator stays have higher priority. In other cases, requests which will make the elevator go up, have higher priority than the same time requests which will make the elevator go down.

Once the elevator starts moving, it keeps its moving direction until the three conditions below are all satisfied at the same time:
1) All the people in the elevator have reached their destination floor.
2) There is nobody waiting for the elevator at the elevator's moving direction.
3) Nobody on the floor where the elevator stays wants to go towards the elevator's moving direction.
When the three conditions above are all satisfied at the same time, if there are requests from the direction opposite to the elevator's last moving direction, the elevator will turn around and start moving; and if there are no requests at that time, the elevator will stay there and become idle.

When the elevator reaches a certain floor, it will stop and open its door when one of the two conditions below is satisfied:
1) Someone inside the elevator wants to get off on that floor.
2) Someone on that floor wants to go towards the elevator's moving direction.

It takes one second for the elevator to move from one floor to another.
It takes one second for the elevator to open the door or close the door.
It takes one second for people outside the elevator to get in, no mater how many people.
It takes one second for people inside the elevator go get out, no mater how many people.

The elevator can't stop between two floors.
输入解释
The first line is an integer T indicating the number of test cases. (T <= 20)

For each test case:
The first line contains two integers: i and n. The elevator is on the i-th floor at first, and n is the total number of requests. (1 <= i <= 50, 1 <= n <= 100)
Then n lines follow. Each line contains three integers: t, s and d. It means that at the time of t-th second, a person on the s-th floor sends a request, and he wants to go to the d-th floor.
输出解释
For each test case, print “Case N:” in a line at first. N is the test case number starting from 1.
Then, print the details of how the elevator runs. You should print information like:

mm:ss The elevator starts to move (up|down) from floor x.
mm:ss The elevator stops at floor x.
mm:ss The elevator door is opening.
mm:ss x people leave the elevator.
mm:ss x people enter the elevator.
mm:ss The elevator door is closing.

"mm:ss" means time, "mm" for minute, "ss" for second.
Please append a blank line to the end of the output of each test case.
It is guaranteed that the elevator will finish all requests within 3600 seconds.
输入样例
1
2 9
4 1 3
5 1 3
6 1 3
7 1 3
9 1 3 0 2 1
0 4 1
0 5 6
0 6 1
输出样例
Case 1:
00:00 The elevator door is opening.
00:01 1 people enter the elevator.
00:02 The elevator door is closing.
00:03 The elevator starts to move down from floor 2.
00:04 The elevator stops at floor 1.
00:04 The elevator door is opening.
00:05 1 people leave the elevator.
00:06 3 people enter the elevator.
00:07 1 people enter the elevator.
00:08 The elevator door is closing.
00:09 The elevator door is opening.
00:10 1 people enter the elevator.
00:11 The elevator door is closing.
00:12 The elevator starts to move up from floor 1.
00:14 The elevator stops at floor 3.
00:14 The elevator door is opening.
00:15 5 people leave the elevator.
00:16 The elevator door is closing.
00:17 The elevator starts to move up from floor 3.
00:19 The elevator stops at floor 5.
00:19 The elevator door is opening.
00:20 1 people enter the elevator.
00:21 The elevator door is closing.
00:22 The elevator starts to move up from floor 5.
00:23 The elevator stops at floor 6.
00:23 The elevator door is opening.
00:24 1 people leave the elevator.
00:25 1 people enter the elevator.
00:26 The elevator door is closing.
00:27 The elevator starts to move down from floor 6.
00:29 The elevator stops at floor 4.
00:29 The elevator door is opening.
00:30 1 people enter the elevator.
00:31 The elevator door is closing.
00:32 The elevator starts to move down from floor 4.
00:35 The elevator stops at floor 1.
00:35 The elevator door is opening.
00:36 2 people leave the elevator.
00:37 The elevator door is closing.
提示
At time 00:00, there are 4 requests at the same time. The upwards request on the floor where the elevator stays has the highest priority.

At time 00:07, because a new person comes, the elevator delays its door closing.

At time 00:09, the door is just closed. But a new person comes, so the elevator has to reopen its door.

该题目是Virtual Judge题目,来自 北京大学POJ

题目来源 Beijing 2008

源链接: POJ-3930

最后修改于 2020-10-29T07:15:50+00:00 由爬虫自动更新

共提交 0

通过率 --%
时间上限 内存上限
1000 65536