Boggle Sort

PDF 视图

提交程序

分数: 1
时间限制: 1.0s
内存限制: 512M

作者:
题目类型

题目描述

你和朋友玩完一晚 Boggle 之后,想把托盘中的 16 个骰子重新整理成按字母非降序排列。

托盘中有 \(16\) 个六面骰子,每个面都写着一个英文字母,其中恰好有一个面写的是 Qu。你不能交换骰子的位置,只能转动骰子。

对一个骰子:

  • 当前朝上的面保持不动,代价为 0 次转动;
  • 任意一个当前朝侧面的面转到上方,代价为 1 次转动;
  • 当前朝下的面转到上方,代价为 2 次转动。

你需要让 16 个骰子按通常阅读顺序(从左到右、从上到下)看过去时,其朝上的文字按字典序非降序排列,并使总转动次数最少。

比较时忽略大小写;特殊面 Qu 被视为两个字符 Q 后接 U。例如 QuU 是有序的,但 QuT 不是。

如果无法做到,输出 impossible

输入格式

输入共 6 行:

  1. 第一行:16 个大写字母,表示 16 个骰子当前朝上的面。
  2. 接下来的 4 行:每行 16 个大写字母,表示 16 个骰子当前朝向侧面的 4 个面。
  3. 最后一行:16 个大写字母,表示 16 个骰子当前朝下的面。

其中:

  • 第 \(i\) 个字符对应第 \(i\) 个骰子,\(1 \le i \le 16\);
  • 所有字符均为 A-Z
  • 字符 Q 表示面 Qu,且在整个输入中恰好出现一次
  • 在同一个骰子上,不会有某个字母出现 4 次或以上。

输出格式

如果可以通过转动使 16 个朝上的面按字典序非降序排列,输出最少转动次数。

否则输出:

impossible

样例输入 1

IAZEEOXSPACKYIGF
APDSSAOHEQAOGGLY
LCERNRFILJINEEWE
BDVLOMRESBATLTRI
TEAAWSINUOOUKVIH
YMNCDHBPTMTDUNUE

样例输出 1

15

样例输入 2

EXFETDMNMGDBRSRM
TIEGINOVRETACNUA
PRYKASAEATNTSHID
SOHUOEJDHVKYLPLC
UFIYAWBZONUIEIWE
LBELCOQASIOLAEGP

样例输出 2

impossible

评论

目前没有评论。