#281. 牧师约翰最忙碌的一天

牧师约翰最忙碌的一天

题目描述

牧师约翰在9\red {9}1\red {1}日这天非常的忙碌。

N\red {N} 对情侣在这天准备结婚,每对情侣都预先计划好了婚礼举办的时间,其中第 i\red {i} 对情侣的婚礼从时刻 Si\red {S_i} 开始,到时刻 Ti\red {T_i} 结束。

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

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

i\red {i} 对情侣需要 Di \red {D_i~} 分钟完成这个仪式,即必须选择 SiSi+Di\red {S_i\sim S _i +D_i }TiDiTi\red {T _i −D _i\sim T_i} 两个时间段之一。

牧师想知道他能否满足每场婚礼的要求,即给每对情侣安排SiSi +Di\red {S_i\sim S _i~ +D_i}TiDiTi\red {T_i −D_i\sim T _i} ,使得这些仪式的时间段不重叠。

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

注意,约翰不能同时主持两场婚礼。

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

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

输入格式

第一行包含整数N\red {N}

接下来N\red {N}行,每行包含Si,Ti,Di\red {S _i ,T_i ,D _i} ,其中Si\red {S_i}Ti\red {T_i}h:m\red {h:m}形式。

输出格式

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

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

样例

输入样例

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

输出样例

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

提示

1N1000\red {1≤N≤1000}