Sponsored by Microsoft
Input file: dept.in
Output file: dept.out
Program file: dept.pas or dept.cpp
The Department of Security has a new headquarters building. The building has several floors, and on each floor there are rooms numbered xxyy where yy stands for the room number and xx for the floor number, 0 < xx; yy <= 10. The building has `pater-noster' elevator, i.e. elevator build up from several cabins running all around. From time to time the agents must visit the headquarters. During their visit they want to visit several rooms and in each room they want to stay for some time. Due to the security reasons, there can be only one agent in the same room at the same time, The same rule applies to the elevators. The visits are planned in the way ensuring they can be accomplished within one day. Each agent visits the headquarters at most once a day.
Each agent enters the building at the 1st floor, passes the reception and then starts to visit the rooms according to his/her list. Agents always visit the rooms by the increasing room numbers. The agents form a linear hierarchy according to which they have assigned their one letter personal codes. The agents with higher seniority have lexicographically smaller codes. No two agents have the same code.
If more then one agent want to enter a room, or an elevator, the agents have to form a queue. In each queue, they always stand according to their codes. The higher the seniority of the agent, the closer to the top of the queue he stands. Every 5 s (seconds) the first agent in the queue in front of the elevator enters the elevator. After visiting the last room in the headquarters each agent uses if necessary elevator to the first floor and exits the building.
The times necessary to move from a certain point in the headquarters to another are set as follows: Entering the building, i.e. passing the reception and reaching the elevator, or a room on the first floor takes 30 s. Exiting the building, i.e. stepping out of the elevator or a room on the first floor and passing the reception takes also 30 s. On the same floor, the transfer from the elevator to the room (or to the queue in front of the room), or from the room to the elevator (or to the queue in front of the elevator), or from one room to another (or to the queue in front of the room) takes 10 s. The transfer from one floor to the next floor above or below in an elevator takes 30 s. Write a program that determines time course of agent's visits in the headquarters.
A 10:00:00 0101 100 0110 50 0202 90 0205 50 0 B 10:01:00 0105 100 0201 5 0205 200 0 .Output file:
A 10:00:00 10:00:30 Entry 10:00:30 10:02:10 Stay in room 0101 10:02:10 10:02:20 Transfer from room 0101 to room 0110 10:02:20 10:03:10 Stay in room 0110 10:03:10 10:03:20 Transfer from room 0110 to elevator 10:03:20 10:03:50 Stay in elevator 10:03:50 10:04:00 Transfer from elevator to room 0202 10:04:00 10:05:30 Stay in room 0202 10:05:30 10:05:40 Transfer from room 0202 to room 0205 10:05:40 10:07:40 Waiting in front of room 0205 10:07:40 10:08:30 Stay in room 0205 10:08:30 10:08:40 Transfer from room 0205 to elevator 10:08:40 10:09:10 Stay in elevator 10:09:10 10:09:40 Exit B 10:01:00 10:01:30 Entry 10:01:30 10:03:10 Stay in room 0105 10:03:10 10:03:20 Transfer from room 0105 to elevator 10:03:20 10:03:25 Waiting in elevator queue 10:03:25 10:03:55 Stay in elevator 10:03:55 10:04:05 Transfer from elevator to room 0201 10:04:05 10:04:10 Stay in room 0201 10:04:10 10:04:20 Transfer from room 0201 to room 0205 10:04:20 10:07:40 Stay in room 0205 10:07:40 10:07:50 Transfer from room 0205 to elevator 10:07:50 10:08:20 Stay in elevator 10:08:20 10:08:50 Exit