时间管理大师
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

\,\,\,\,\,\,\,\,\,\,制定合理的日程能够帮助利用好时间进行加训,加训和加训。
\,\,\,\,\,\,\,\,\,\,新学期开始了,应该好好学习了!凌晨两点整,加睡失败的你在为新一天的各项重要事件制定闹钟。
\,\,\,\,\,\,\,\,\,\,
\,\,\,\,\,\,\,\,\,\,你的手上有一张日程表,上面列出了一些事件发生的时间。你想在每一个日程事件开始前 1, 35 分钟各设定一个闹钟,最后,将这些闹钟按照时间先后顺序依次输出(就像你在手机闹钟界面看到的一样)。注意,如果有多个闹钟被设定在同一时间,那么它们会被视为同一个。
\,\,\,\,\,\,\,\,\,\,正式地,假设闹钟 a 将在 h_am_a 分响起,闹钟 bh_bm_b 分响起,那么:
  • 如果 h_a<h_b ,闹钟 a 先于闹钟 b 响起;
  • h_a=h_b 时, 如果 m_a<m_b ,闹钟 a 先于闹钟 b 响起;
  • h_a=h_b 时, 如果 m_a=m_b ,闹钟 a 和闹钟 b 应当被看作同一个闹钟。

输入描述:

\,\,\,\,\,\,\,\,\,\,每个测试文件仅有一组测试数据。
\,\,\,\,\,\,\,\,\,\,第一行输入一个整数 n (1\le n\le 1000) 表示日程的数量。
\,\,\,\,\,\,\,\,\,\,随后 n 行,第 i 行输入两个整数 h_i 和 m_i (3\le h_i \le 230\le m_i\le 59) 表示第 i 个日程开始的时分(采用 24 小时制),数字不包含前导零。注意可能有多个日程事件开始于同一时刻。

输出描述:

\,\,\,\,\,\,\,\,\,\,第一行输出一个整数 m ,代表设定的闹钟数量。
\,\,\,\,\,\,\,\,\,\,随后 m 行,第 i 行输出两个由单个空格分隔的整数 h_i' 和 m_i' (0\le h_i' \le 230\le m_i'\le 59) ,代表第 i 个闹钟在 h_i' 时 m_i' 分响起。数字不应当包含前导零。
示例1

输入

复制
2
3 5
3 3

输出

复制
4
2 58
3 0
3 2
3 4

说明

\,\,\,\,\,\,\,\,\,\,第一个日程事件开始于 03:05 ,我们需要在 03:0003:0203:04 这三个时刻各设置一个闹钟。
\,\,\,\,\,\,\,\,\,\,第二个日程事件开始于 03:03 ,我们需要在 02:5803:0003:02 这三个时刻各设置一个闹钟。
\,\,\,\,\,\,\,\,\,\,注意到 03:0003:02 这两个时刻都被设置了两个闹钟,需要将它们看成同一个,最终共需设定四个闹钟。