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 翻译