P16620 [GKS 2017 #C] Ambiguous Cipher

题目描述

Susie 和 Calvin 是同班同学。Calvin 希望在课堂上给 Susie 传纸条时,不被老师或其他同学知道他们谈论的内容,以防纸条落入不该看到的人手中。Calvin 设计了一套加密系统来加密他的消息。 Calvin 每次只传给 Susie 一个单词,该单词仅由大写字母组成,因为 Calvin 非常兴奋能与 Susie 交流。每个单词的加密方式如下: - Calvin 根据字母在字母表中的位置为每个字母分配一个数字,其中 $\text{A} = 0$,$\text{B} = 1$,…,$\text{Z} = 25$。 - 对于单词中的每个字母,Calvin 通过将该字母相邻的 $1$ 或 $2$ 个字母的值相加,来确定该字母的加密值。他取该和对 $26$ 取模,得到该字母的新值。然后 Calvin 再根据字母表位置将数值转换回大写字母。 - 加密后的单词是通过对单词中的每个字母使用此方法加密得到的。每个字母的加密仅基于原始未加密消息中的字母,而不依赖于任何已经加密过的字母。 让我们来看 Calvin 正在为 Susie 写的其中一张便条。由于 Calvin 总是很饿,他想让 Susie 知道他还想吃东西。Calvin 对单词 `SOUP` 进行加密的过程如下: - $\text{S}=18$,$\text{O}=14$,$\text{U}=20$,$\text{P}=15$。 - Calvin 根据每个字母相邻字母的值对其进行加密: - 第一个字母:$14 \bmod 26 = 14$。 - 第二个字母:$(18+20) \bmod 26 = 12$。 - 第三个字母:$(14+15) \bmod 26 = 3$。 - 第四个字母:$20 \bmod 26 = 20$。 - 数值 $14, 12, 3, 20$ 对应的字母为 `OMDU`,这就是 Calvin 会在便条上写给 Susie 的加密单词。 保证 Calvin 不会发送给 Susie 任何完全无法解密的单词。例如,Calvin 不会发送单词 `APE`,因为它没有任何有效的解密(即,不存在一个单词,Calvin 对其加密后能得到 `APE`)。 然而,Calvin 的系统并不完美,他发送给 Susie 的一些单词实际上可以解密成多个单词,从而产生歧义!例如,`BCB` 可以解密成 `ABC` 或 `CBA` 等可能性。 Susie 昨晚为了完成学校项目又熬了一个通宵,她实在太累,无法解密 Calvin 的消息。她需要你的帮助!

输入格式

输入的第一行给出测试用例的数量 $T$。接下来有 $T$ 个测试用例。每个测试用例是一行,包含一个由大写字母组成的字符串 $W$:Calvin 发送的加密单词。

输出格式

对于每个测试用例,输出一行,格式为 `Case #x: y`,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是解密后的单词,如果无法唯一确定解密后的单词,则输出 `AMBIGUOUS`。

说明/提示

请注意,最后一个样例不会出现在小数据集中。 样例 #1 和 #2 已在题目描述中解释。 在样例 #3 中,`BANANA` 是唯一加密后得到 `AOAAAN` 的单词。 ### 限制条件 $1 \le T \le 100$。 $W$ 仅由大写英文字母组成。 $W$ 可以解密为一个或多个单词(即 $W$ 是某个单词加密后的结果)。 $W$ 不会解密成单词 `AMBIGUOUS`(你只会在解密存在歧义时输出该词)。 **小数据集(测试集 1 – 可见)** $2 \le$ $W$ 的长度 $\le 4$。 **大数据集(测试集 2 – 隐藏)** $2 \le$ $W$ 的长度 $\le 50$。 翻译由 DeepSeek V4 Pro 完成