#yXTTJlydlt60x6801. 牧师约翰最忙碌的一天 Priest Johns Busiest Day

牧师约翰最忙碌的一天 Priest Johns Busiest Day

好的,这是整理好的题面,不含解题思路,只包含样例解释。


题目描述

牧师约翰在 9 月 1 日这天非常忙碌。
NN 对情侣在这天准备结婚,每对情侣的婚礼从时刻 SiS_i 开始,到时刻 TiT_i 结束。

婚礼有一个必须的仪式:站在牧师面前聆听上帝的祝福。
这个仪式可以在以下两个时间段之一举行:

  • 在婚礼开始时:[Si,Si+Di][S_i, S_i + D_i]
  • 在婚礼结束时:[TiDi,Ti][T_i - D_i, T_i]

牧师不能同时主持两场婚礼(仪式时间不能重叠)。
注意:如果一场仪式的结束时间等于另一场仪式的开始时间,不算重叠。

如果可能,需要输出任意一种具体方案(每对情侣选择哪个时间段)。


输入格式

第一行一个整数 NN
接下来 NN 行,每行包含 Si,Ti,DiS_i, T_i, D_i,其中 SiS_iTiT_ihh:mm 格式。

输出格式

第一行输出能否满足,能则输出 YES,否则输出 NO
如果输出 YES,接下来 NN 行,每行给出该对情侣的仪式具体时间段安排(格式为 hh:mm hh:mm)。

数据范围

1N10001 \le N \le 1000


输入样例

2
08:00 09:00 30
08:15 09:00 20

输出样例

YES
08:00 08:30
08:40 09:00

样例解释

N=2N=2

第一对情侣:婚礼时间 08:0009:00,仪式需要 3030 分钟。
可以选择时间段:

  • 开始:08:0008:30
  • 结束:08:3009:00

第二对情侣:婚礼时间 08:1509:00,仪式需要 2020 分钟。
可以选择时间段:

  • 开始:08:1508:35
  • 结束:08:4009:00

检查是否可行

若第一对选开始段 08:00-08:30,第二对选结束段 08:40-09:00,则不冲突,因为 08:3008:40 不重叠(结束等于开始可以)。
若第二对选开始段 08:15-08:35,则会和第一对的开始段 08:00-08:30 重叠(08:15-08:30 重叠),不行。
所以选择第一对开始段、第二对结束段即可。


输出安排

第一对:08:00 08:30
第二对:08:40 09:00

输出:

YES
08:00 08:30
08:40 09:00