#6492. D:电梯调度 (Elevators)
D:电梯调度 (Elevators)
题目 D:电梯调度 (Elevators)
| 属性 | 规格 |
|---|---|
| 题目类型 | 提交答案题 (Output-only) |
| 时间限制 | N/A (线下计算) |
| 内存限制 | N/A |
| 最大分值 | 100 分 |
题目描述
在新加坡参加 IOI 2020 期间,所有选手都住在一栋共有 层(编号 )的大楼里。大楼安装了 部电梯,每部电梯初始都在第 1 层。每部电梯在任何时刻最多只能载 人。 电梯速度很快,移动 1 层需要 1 秒,选手开关门、上下电梯的时间忽略不计。
你决定通过编写代码控制电梯系统,以最小化所有选手从到达电梯口到被送达目标层的总等待时间之和。
输入格式
- 第一行:四个整数 ,分别表示电梯数、最大载客量、总楼层数和选手总数。
- 接下来 行:每行三个整数 ,表示第 个选手到达的时间、起始楼层和目标楼层。输入已按 非递减顺序排列。
输出格式
- 输出应包含 行。每行三个整数 :
- :执行命令的电梯编号 ()。
- :命令类型( 为接人, 为放人)。
- :选手的索引编号()。
约束条件:
- 任何时刻电梯内人数 。
- 每个选手必须先被接走()再被放下()。
- 电梯按输出中该电梯对应的命令顺序执行。如果命令要求去接还没到达的选手,电梯会在该层等待。
- 电梯之间相互独立,不需要等待其他电梯完成命令。
好的,这是 Problem D: Elevators 的输入与输出数据样例及详细的逻辑解析。
这个样例非常重要,因为它展示了电梯是如何在不同时间点处理多名选手的。
1. 样例输入 (input_*.txt)
2 2 15 5
1 3 5
3 5 4
4 4 10
5 3 10
7 9 1
参数解读:
- (2 部电梯), (载客量 2), (15 层楼), (5 名选手)。
- 选手 1: 到达, 层 层。
- 选手 2: 到达, 层 层。
- 选手 3: 到达, 层 层。
- 选手 4: 到达, 层 层。
- 选手 5: 到达, 层 层。
2. 样例输出 (output_*.txt)
1 1 1
1 1 2
1 0 2
1 0 1
1 1 3
2 1 4
1 0 3
2 0 4
1 1 5
1 0 5