QOJ.ac

QOJ

時間限制: 30 s 記憶體限制: 1024 MB 總分: 30

#12452. 坏掉的时钟

统计

Emmett 在他的阁楼里发现了一个旧时钟。这个时钟是一个圆盘,有 3 根指针连接在中心,并以恒定的速度顺时针旋转。它们分别被称为时针、分针和秒针。午夜时分,所有指针都指向正上方。时针在 12 小时内完成一整圈旋转,分针在 1 小时内完成一整圈旋转,秒针在 1 分钟内完成一整圈旋转。1 小时等于 60 分钟,1 分钟等于 60 秒,1 秒等于 $10^9$ 纳秒。

例如,下图所示的时钟显示时间正好是午夜过后 6 小时 30 分钟。时针(短黑针)位于 6 和 7 之间(完成了 $6.5/12$ 圈),分针(长黑针)指向正下方,因为它正好完成了 6.5 圈,而秒针(红色)指向正上方,因为它完成了整数圈。

不幸的是,指针坏了,它们看起来一模一样,无法分辨哪根是哪根。上图中的时钟,如果指针坏了,看起来会是这样:

此外,时钟上没有任何标记可以让 Emmett 知道哪边是上方,因此时钟的任何旋转都可能是正确的(时钟只能旋转,不能翻转)。继续我们的例子,完全损坏的时钟可能看起来像这样:

Emmett 确实知道时间是在正午之前,也就是说,午夜过后严格小于 12 小时。Emmett 给时钟拍了一张照片。给定那张照片(由指针相对于单个任意轴的角度表示),找出它可能对应的时间。

请注意,Emmett 在某些情况下(测试集 1)已经找出了时钟的一种可行方向,并设法将可能的时间缩小到整数秒(测试集 1 和 2)或纳秒(测试集 3)。请参阅数据范围部分了解更多详细信息。

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 行。每行描述一个测试用例,包含三个整数 $A$、$B$ 和 $C$:每根指针相对于一个任意轴的角度,以刻度(ticks)为单位,按顺时针方向给出。1 个刻度等于 $1/12 \times 10^{-10}$ 度。这意味着时针每纳秒旋转 1 个刻度,分针每纳秒旋转 12 个刻度,秒针每纳秒旋转 720 个刻度。

输出格式

对于每个测试用例,输出一行 Case #x: h m s n,其中 $x$ 是测试用例编号(从 1 开始),$h$、$m$、$s$ 和 $n$ 是整数:$h$ 是自午夜以来的完整小时数(0 到 11 之间,含边界),$m$ 是自上一个整点以来的完整分钟数(0 到 59 之间,含边界),$s$ 是自上一分钟以来的完整秒数(0 到 59 之间,含边界),$n$ 是自上一秒以来的完整纳秒数(0 到 $10^9 - 1$ 之间,含边界)。

数据范围

时间限制:30 秒。 内存限制:1 GB。 $1 \le T \le 100$。 $0 \le A \le B \le C < 360 \times 12 \times 10^{10}$。

测试集 1(可见判定)

存在一个对应于输入的时间 $t$,使得: $t$ 是午夜过后的整数秒。 无需旋转时钟即可从输入中读取 $t$。

测试集 2(可见判定)

存在一个对应于输入的时间,且该时间是午夜过后的整数秒。

测试集 3(可见判定)

存在一个对应于输入的时间,且该时间是午夜过后的整数纳秒。

样例

样例输入 1

3
0 0 0
0 21600000000000 23400000000000
1476000000000 2160000000000
3723000000000

样例输出 1

Case #1: 0 0 0 0
Case #2: 6 30 0 0
Case #3: 1 2 3 0

说明

在样例 1 中,所有指针都指向正上方(如下图所示),这种情况仅发生在午夜。

样例 2 是题目正文中描述的情况。指针的角度(以度为单位)分别为 0、180 和 195。如题目正文中的图片所示,这些角度可以在不旋转时钟的情况下对应 6h 30m 0s。但请注意,在 0h 30m 0s 时(如下图所示),时钟看起来是一样的,只是旋转了 180 度。

即使在测试集 1 中,0h 30m 0s 也是一个有效的答案。限制条件仅说明存在一个不需要旋转时钟的有效时间,但通过旋转也能成立的时间同样是有效答案。

在样例 3 中,输入代表下图中的第一个时钟,给出的输出是在将时钟解释为下图中的第二个时钟时得到的结果。

附加样例 - 测试集 2

以下附加样例符合测试集 2 的限制。它不会针对你的提交进行运行。

样例输入 2

3
5400000000000 5400000000000
5400000000000
10800000000000 32400000000000
34200000000000
23076000000000 23760000000000
25323000000000

样例输出 2

Case #1: 0 0 0 0
Case #2: 0 30 0 0
Case #3: 1 2 3 0

说明

此测试集中的样例与前一个相同,但时钟分别顺时针旋转了 45、90 和 180 度,如下图所示。

附加样例 - 测试集 3

以下附加样例符合测试集 3 的限制。它不会针对你的提交进行运行。

样例输入 3

1
0 11 719

样例输出 3

Case #1: 0 0 0 1

说明

如上所述,午夜过后 1 纳秒,指针分别移动了 1、12 和 720 个刻度。如果时钟也逆时针旋转 1 个刻度,指针的角度正好就是输入中给出的角度。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.