#iai12t4. 公交车站(Bus Station)

公交车站(Bus Station)

公交车站(Bus Station)

题目描述

有一个公交车站,陆续有若干乘客前来排队,也陆续会有一些班车将乘客运走。

共有 n 班公交车停靠该车站,对班车 i,有一个时间参数 a_i,表示它到达车站的时间,以及另外一个装载参数 d_i,表示这一班车能装载的乘客数量:

  • 若排队人多,则优先载运到达时间靠前的乘客;
  • 若排队人少,座位还有剩余,班车不会等待。

共有 m 位乘客来该站点候车,每名乘客有两个时间参数。

  • 乘客 j 的第一个参数表示他的到达时间 s_j;
  • 第二个参数表示他的离开时间 t_j。太过漫长的等待会令人失去耐心。若他在时间 t_j 前不能上车,乘客 j 就会离开车站,选择其他交通方式。
  • 若存在两位乘客的到达时间完全一致,则按输入时他们的序号顺序依次排队候车。例如:2 号乘客和 5 号乘客的到达时间相同,我们认为2号乘客排在 5 号乘客前面。

班车到站时间 a_i、乘客的到达与离开时间 s_i, t_i 均以 24 小时制时间给出,以 HH:MM 形式表示,例如8点30分表示为 08:30,小时与分钟均为两位数,不足两位时,首位以 0 补全。

给定所有乘客以及所有班车的信息,请对于每一个乘客,输出他在车站等待上车的时长(单位为分钟),若该乘客放弃等待离开车站,则输出 Leave

输入格式

第一行,两个正整数 n 和 m; 接下来 n 行,每行两个参数 a_i, d_i,表示第 i 号班车的到达时间与最大载客数量。 接下来 m 行,每行两个参数 s_i, t_i,表示第 i 号乘客的到达时间与离开时间。

输出格式

共 m 行:表示 m 个乘客的等待时间长度。

样例输入 #1

3 6
09:10 3
08:30 2
10:20 4
09:05 09:15
09:01 09:22
08:31 09:20
09:05 10:00
10:10 10:15
08:30 08:33

样例输出 #1

5
9
39
Leave
Leave
0

说明: 1,2,3号乘客选乘09:10这班车,等待时间分别为5分钟、9分钟、39分钟。 4号乘客和1号乘客到达时间相同,排在1号乘客后面,因载客量未能乘09:10这班车,直到放弃时间没有公交车前来,则放弃乘坐。 5号乘客直到放弃时间没有公交车前来,则放弃乘坐。 6号乘客到站直接乘坐08:30这班车,等待时长为0分钟。

数据范围

  • 对于 30% 的数据,1 ≤ n ≤ 5, 1 ≤ m ≤ 10
  • 对于 50% 的数据,1 ≤ n ≤ 100, 1 ≤ m ≤ 1000
  • 对于 100% 的数据,1 ≤ n ≤ 1000, 1 ≤ m ≤ 10000

数据保证所有 24 小时制的时间数字是合理的,并且所有的时间区间不会出现跨过某天零点的情况。

知识点与难度

本题涉及的知识点从属于 GESP 4级,难度等级:⭐⭐⭐


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例 / 简单单班车样例
1 20 3~8 小规模 n≤5, m≤10
2 15 9~11 Hack: 多乘客同时间 / Hack: 乘客到站时班车已过 / Hack: 乘客提前离开
3 30 12~20 中规模 n≈10~500, m≈10~2000 / 大规模 n=1000, m=10000
4 25 21~25 随机 n=1~1000, m=1~10000 回归