时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
ym最近接手了一项新需求:改造项目中的“玩家在线时间展示”模块,在原模块中某个玩家一天中的时间将会被均匀地划分为48块,每块半小时,每个半小时由一个字符来表示在这半小时中玩家是否在线过,且字符要么为0,要么为1,分别代表该玩家不在线和在线的情况。
因此某个玩家一天的在线情况就可以表示为一个由48位字符(字符要么为0,要么为1,第i个字符代表玩家在一天中的第i个半小时中的在线情况)组成的字符串。现在,为了能更直观地表现某个玩家一天中的在线时间,ym需要把这个字符串转化为连续时间段的形式,你能够帮助ym完成这个需求吗?
某个连续时间段由两个时间点和“-”符号组合而成,时间点采用24小时表示法,例如上午10点整到下午2点30分应表示为:“10:00 - 14:30”
如果玩家整天都未上线,那么直接输出“00:00 - 00:00”即可
另外,你需要保证输出的连续时间段数量尽可能少
如果你仍对题面感到疑惑,那么不妨观看一下样例。
输入描述:
输入仅含一行长度为48的01字符串
输出描述:
按时间顺序输出01字符串被转换后的对应玩家在线时间段,每输出一次连续时间段就需要进行一次换行
示例1
输入
复制
111000000000000000000000000000000000000000000001
输出
复制
00:00 - 01:30
23:30 - 24:00