题目 3199

「Priest John's Busiest Day」 牧师约翰最忙碌的一天

查看题解 ↗GitHub ↗如何评测
题号
3199
时间限制
1000 ms
内存限制
128 MB
标签
图论Tarjan2-SAT构造

牧师约翰在9月1日这天非常的忙碌。

有 N 对情侣在这天准备结婚,每对情侣都预先计划好了婚礼举办的时间,其中第 i 对情侣的婚礼从时刻 SiS_i 开始,到时刻 TiT_i 结束。

婚礼有一个必须的仪式:站在牧师面前聆听上帝的祝福。

这个仪式要么在婚礼开始时举行,要么在结束时举行。

第 i 对情侣需要 DiD_i 分钟完成这个仪式,即必须选择 SiS_i~Si+DiS_i+D_i 或 Ti−DiT_i-D_i~TiT_i 两个时间段之一。

牧师想知道他能否满足每场婚礼的要求,即给每对情侣安排SiS_i~Si+DiS_i+D_i 或 Ti−DiT_i-D_i~TiT_i,使得这些仪式的时间段不重叠。

若能满足,还需要帮牧师求出任意一种具体方案。

注意,约翰不能同时主持两场婚礼,且 所有婚礼的仪式均发生在9月1日当天。

如果一场仪式的结束时间与另一场仪式的开始时间相同,则不算重叠。

例如:一场仪式安排在08:0009:00,另一场仪式安排在09:0010:00,则不认为两场仪式出现重叠。

输入格式

第一行包含整数N。

接下来N行,每行包含Si,Ti,DiS_i,T_i,D_i,其中SiS_i和TiT_i是hh:mm形式。

输出格式

第一行输出能否满足,能则输出”YES”,否则输出”NO”。

接下来N行,每行给出一个具体时间段安排。

数据范围

1≤N≤10001 \le N \le 1000

输入样例:

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

输出样例:

文本
YES
08:00 08:30
08:40 09:00

来源

  • 《算法竞赛进阶指南》
  • acwing 可能含有视频讲解

数据下载

题目 3199 的公开数据

正在读取文件列表…

常用命令

题目 3199 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。