P2750 [IOI 2001 / USACO5.5] 贰五语言 Two Five
题目描述
有一种奇怪的语言叫做“贰五语言”。它的每个单词都由 `A` 至 `Y` 这 $25$ 个字母各一个组成。但是,并不是任何一种排列都是一个合法的贰五语言单词。贰五语言的单词必须满足这样一个条件:把它的 $25$ 个字母排成一个 $5\times 5$ 的矩阵,它的每一行和每一列都必须是递增的。比如单词 `ACEPTBDHQUFJMRWGKNSXILOVY`,它排成的矩阵如下所示:
```plain
ACEPT
BDHQU
FJMRW
GKNSX
ILOVY
```
因为它的每行每列都是递增的,所以它是一个合法的单词。而单词 `YXWVUTSRQPONMLKJIHGFEDCBA` 则显然不合法。由于单词太长存储不便,需要给每一个单词编一个码。编码方法如下:从左到右,再从上到下,可以由一个矩阵的得到一个单词,再把单词按照字典顺序排序。比如,单词 `ABCDEFGHIJKLMNOPQRSTUVWXY` 的编码为 $1$,而单词 `ABCDEFGHIJKLMNOPQRSUTVWXY` 的编码为 $2$。
现在,你需要编一个程序,完成单词与编码间的转换。
输入格式
第一行为一个字母 `N` 或 `W`。`N` 表示把编码转换为单词,`W` 表示把单词转换为编码。
若第一行为 `N`,则第二行为一个整数,表示单词的编码。若第一行为 `W`,则第二行为一个合法的单词。
输出格式
每行一个整数或单词。
说明/提示
题目翻译来自 NOCOW。
USACO Training Section 5.5。