P16517 [GKS 2015 #D] Virtual Rabbit

题目描述

Alice 刚买了一只虚拟宠物兔。这只兔子在屏幕上跳来跳去,可以通过按下按钮来“喂食”。Alice 很喜欢这只兔子,但她也很忙,不想花太多时间照顾它。然而,如果兔子太久没有“食物”,它就会“死亡”,Alice 就会输掉游戏。 每天,Alice 在时间 $G$ 起床,在时间 $W$ 去上班,在时间 $H$ 回家,并在时间 $B$ 上床睡觉。Alice 在上班或睡觉期间不能喂兔子——也就是说,在区间 $[W, H)$ 和 $[B, G)$ 内不能喂食。注意,时间 $W$ 和 $B$ 本身不是合法的喂食时刻,而时间 $H$ 和 $G$ 则是合法的。在任何其他秒内,Alice 可以按一下按钮立即喂食兔子,也可以不按按钮。在每两秒之间,兔子会检查它连续未被喂食的秒数,如果该持续时间等于 $X$,它就会“死亡”。 现在是第 $0$ 天的 00:00:00,兔子刚被邮递服务送到 Alice 的家里。(邮递员在 00:00:00 按下了按钮,即使 Alice 还在睡觉,然后就离开了。)Alice 希望确保兔子在第 $D$ 天的 00:00:00 仍然“活着”。如果她能在所有时间都让兔子“活着”,她至少需要喂食兔子多少次?

输入格式

输入的第一行给出测试用例的数量 $T$。接下来是 $T$ 个测试用例;每个用例由 $6$ 行组成。前 $5$ 行以“hh:mm:ss”格式分别表示时间 $G$、$W$、$H$、$B$ 和 $X$。最后一行包含一个整数 $D$。

输出格式

对于每个测试用例,输出一行形如 `Case #x: y` 的内容,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是 Alice 需要喂食兔子的最少次数。如果兔子不可能在第 $D$ 天的 00:00:00 存活,则输出 $-1$。

说明/提示

在样例用例 #1 中,Alice 可以每天在 08:00:00 和 20:00:00 各喂食一次兔子。 在样例用例 #2 中,可怜的兔子在第 $0$ 天甚至 Alice 醒来之前就会“死亡”。 ### 限制 $1 \le T \le 100$。 保证 Alice 总是在午夜前上床睡觉,并在午夜或之后起床。 $G, W, H$ 和 $B$ 在同一天内严格递增。 $00{:}00{:}00 \le G < W < H < B \le 23{:}59{:}59$。 $00{:}00{:}00 < X \le 23{:}59{:}59$。 **小数据集(测试集 1 - 可见)** $1 \le D \le 1000$。 **大数据集(测试集 2 - 隐藏)** $1 \le D \le 10^{14}$。 翻译由 DeepSeek V4 Pro 完成