AT_abc001_4 [ABC001D] 感雨時刻の整理

题目描述

下雨的时间与降水量同样重要。现在,发现了一份关于某一天内下雨时段的记录。请对这些记录进行整理,找出当天实际下雨的时间段。 整理需遵循以下规则: - 根据下雨时段的记录,按时间顺序输出当天所有下雨的时间段。若有跨越日期的降雨,视为 $00:00$ 开始或 $24:00$ 结束,且不会有跨越日期的记录输入。 - 下雨开始和结束的时间需分别向前和向后取整到最近的 $5$ 分钟。例如,$13:23$ 开始下雨,$14:01$ 停止,则视为 $13:20$ 到 $14:05$ 下雨。 - 对取整后的结果,若有多个记录的下雨时段重叠,则视为一次连续的降雨。例如,若有 $11:06$ 开始到 $11:23$ 结束、$11:29$ 开始到 $12:03$ 结束、$11:48$ 开始到 $12:10$ 结束的三段降雨,取整后分别为 $11:05$-$11:25$、$11:25$-$12:05$、$11:45$-$12:10$,重叠部分合并后,视为 $11:05$ 到 $12:10$ 的一次连续降雨。 请根据输入的记录,整理并输出所有下雨的时间段,要求符合上述规则。输入格式如下: > $N$ > $S_1$-$E_1$ > $S_2$-$E_2$ > $\cdots$ > $S_N$-$E_N$ 1. 第 $1$ 行为整数 $N$,表示当天有 $N$ 段连续下雨的时段,$1 \leq N \leq 30,000$。 2. 接下来 $N$ 行,每行给出一段下雨的开始和结束时间。 - 第 $i$ 行($1 \leq i \leq N$)为下雨开始时间 $S_i$ 和结束时间 $E_i$,用连字符连接。 - 时间 $S_i$ 和 $E_i$ 均为 $4$ 位非负整数,前 $2$ 位为小时(hour),后 $2$ 位为分钟(minute)。 - 时间范围为 $0000$ 到 $2400$,分钟部分不会超过 $59$。 - 保证 $S_i$ 早于 $E_i$。 请整理下雨时段,并按下雨开始时间的升序输出,每段用连字符连接,格式与输入一致。每段输出一行,末尾需换行。 例如: ``` 4 1148-1210 1323-1401 1106-1123 1129-1203 ``` - $11:48$-$12:10$ 下雨。 - $13:23$-$14:01$ 下雨。 - $11:06$-$11:23$ 下雨。 - $11:29$-$12:03$ 下雨。 输出: ``` 1105-1210 1320-1405 ``` - 取整后分别为 $1145$-$1210$、$1320$-$1405$、$1105$-$1125$、$1125$-$1205$。 - 按开始时间排序为 $1105$-$1125$、$1125$-$1205$、$1145$-$1210$、$1320$-$1405$。 - $1105$-$1125$ 与 $1125$-$1205$ 相连,合并为 $1105$-$1205$。 - $1105$-$1205$ 与 $1145$-$1210$ 重叠,合并为 $1105$-$1210$。 - 最终输出如上。 再如: ``` 1 0000-2400 ``` 输出: ``` 0000-2400 ``` 再如: ``` 6 1157-1306 1159-1307 1158-1259 1230-1240 1157-1306 1315-1317 ``` 输出: ``` 1155-1310 1315-1320 ```

输入格式

第 $1$ 行为整数 $N$,表示当天有 $N$ 段连续下雨的时段。 接下来 $N$ 行,每行格式为 $S_i$-$E_i$,表示第 $i$ 段下雨的开始和结束时间。

输出格式

按下雨开始时间升序输出所有下雨时段,每段一行,格式为 $S$-$E$,末尾需换行。

说明/提示

- 时间需按 $5$ 分钟为单位取整,开始时间向下取整,结束时间向上取整。 - 合并所有重叠或相连的时段。 - 输出时段需按开始时间升序排列。 - 时间格式与输入一致,均为 $4$ 位数字。 由 ChatGPT 4.1 翻译