题目名称 916. 二五语言
输入输出 twofive.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 12
题目来源 Gravatarsywgz 于2012-07-12加入
开放分组 全部用户
提交状态
分类标签
USACO IOI 动态规划 搜索法
分享题解
通过:2, 提交:2, 通过率:100%
Gravatarcstdio 100 0.016 s 0.35 MiB C++
Gravatarmikumikumi 100 0.257 s 0.70 MiB C++
关于 二五语言 的近10条评论(全部评论)
class强迫症没治了= =
Gravatarcstdio
2013-12-05 14:57 1楼

916. 二五语言

★★☆   输入文件:twofive.in   输出文件:twofive.out   简单对比
时间限制:1 s   内存限制:128 MiB
USACO/twofive(译 ioi)

描述

有一种奇怪的语言叫做“二五语言”。它的每个单词都由A~Y这25个字母各一个组成。但是,并不是任何一种排列都是一个合法的二五语言单词。二五语言的单词必须满足这样一个条件:把它的25个字母排成一个5*5的矩阵,它的每一行和每一列都必须是递增的。比如单词ACEPTBDHQUFJMRWGKNSXILOVY,它排成的矩阵如下所示:
A C E P T
B D H Q U
F J M R W
G K N S X
I L O V Y
因为它的每行每列都是递增的,所以它是一个合法的单词。而单词YXWVUTSRQPONMLKJIHGFEDCBA则显然不合法。

由于单词太长存储不便,需要给每一个单词编一个码。编码方法如下:从左到右,再从上到下,可以由一个矩阵的得到一个单词,再把单词按照字典顺序排序。比如,单词ABCDEFGHIJKLMNOPQRSTUVWXY的编码为1,而单词ABCDEFGHIJKLMNOPQRSUTVWXY的编码为2。

现在,你需要编一个程序,完成单词与编码间的转换。

PROGRAM NAME: twofive

INPUT FORMAT

  • 第一行为一个字母N或W。N表示把编码转换为单词,W表示把单词转换为编码。
  • 若第一行为N,则第二行为一个整数,表示单词的编码。若第一行为W,则第二行为一个合法的单词。

SAMPLE INPUT  #1(file twofive.in)

N
2
SAMPLE INPUT #2
W 
ABCDEFGHIJKLMNOPQRSUTVWXY

OUTPUT FORMAT

每行一个整数或单词。

SAMPLE OUTPUT #1(file twofive.out)

ABCDEFGHIJKLMNOPQRSUTVWXY
SAMPLE OUTPUT #2
2