#P13253. [GCJ 2014 #1C] Part Elf

    ID: 13073 远端评测题 3000~5000ms 1024MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>数学2014数论Google Code Jam

[GCJ 2014 #1C] Part Elf

Description

Vida 说她是半精灵:她的祖先中至少有一个是精灵。但她不知道这个精灵是她的父母(1 代之前)、祖父母(2 代之前),还是更久远的祖先。帮她找找看吧!

成为半精灵的方式大致与你想象的一样。精灵、人类以及半精灵的孩子都是通过两个父母结合而诞生的。如果一位父母的精灵血统是 AB\frac{A}{B},另一位是 CD\frac{C}{D},那么他们的孩子的精灵血统将是 (A/B+C/D)2\frac{(A/B + C/D)}{2}。例如,如果一个精灵血统是 01\frac{0}{1} 的人与一个精灵血统是 12\frac{1}{2} 的人生了孩子,那么这个孩子的精灵血统将是 14\frac{1}{4}

Vida 确信一点:在 40 代之前,她有 2402^{40} 位不同的祖先,而且每一位的精灵血统都是 11\frac{1}{1}01\frac{0}{1}

Vida 说她的精灵血统是 PQ\frac{P}{Q}。请告诉她,若她的精灵血统真的是 PQ\frac{P}{Q},那么她家族中最少多少代之前可能出现过一位 11\frac{1}{1} 的纯精灵祖先。如果不可能拥有精确为 PQ\frac{P}{Q} 的精灵血统,请告诉她这是不可能的!

Input Format

输入的第一行是测试用例数量 TT。接下来的 TT 行中,每行包含一个分数,格式为 PQ\frac{P}{Q},其中 PPQQ 均为整数。

Output Format

对于每个测试用例,输出一行,格式为 "Case #x: y",其中 xx 是测试用例编号(从 1 开始),yy 是 Vida 家族中最少多少代之前可能出现过一位 11\frac{1}{1} 的纯精灵祖先。如果 Vida 不可能拥有 PQ\frac{P}{Q} 的精灵血统,则 yy 应为字符串 "impossible"(不带引号)。

5
1/2
3/4
1/4
2/23
123/31488
Case #1: 1
Case #2: 1
Case #3: 2
Case #4: impossible
Case #5: 8

Hint

请注意,第五个样例数据并不满足 Small 数据集的限制。即使你未能正确解出它,也可能已经正确解决了 Small 数据集。

样例解释

在第一个样例中,Vida 可以拥有一位 11\frac{1}{1} 的父母和一位 01\frac{0}{1} 的父母。也就是说,她的家族中 1 代之前就可能有一位纯精灵祖先,因此答案是 11

在第二个样例中,Vida 的父母可以是一个 11\frac{1}{1} 的精灵和一个 12\frac{1}{2} 的精灵。那么她的家族中也可以在 1 代之前出现纯精灵祖先,因此答案是 11

在第三个样例中,Vida 的父母可以是一个 01\frac{0}{1} 的人类和一个 12\frac{1}{2} 的精灵。而这个 12\frac{1}{2} 的精灵父母可以是一个 11\frac{1}{1} 的精灵和一个 01\frac{0}{1} 的人类。那么家族中可能在 2 代之前出现纯精灵祖先,因此答案是 22

在第四个样例中,如果你的 40 代祖先都只可能是 01\frac{0}{1}11\frac{1}{1} 的精灵,那么精确拥有 223\frac{2}{23} 的精灵血统是不可能的。

注意

是的,Vida 的祖先非常之多。如果你觉得这个设定最不现实,请重新阅读有关精灵的部分。

限制条件

  • 1T1001 \leq T \leq 100

Small 数据集(8 分)

  • 时间限制:60 3 秒。
  • 1P<Q10001 \leq P < Q \leq 1000
  • PPQQ 互质,即 PQ\frac{P}{Q} 是最简分数。

Large 数据集(12 分)

  • 时间限制:120 5 秒。
  • 1P<Q10121 \leq P < Q \leq 10^{12}
  • PPQQ 不一定互质,即 PQ\frac{P}{Q} 不一定是最简分数。

翻译由 ChatGPT-4o 完成