小慕正在开发一套加密系统。明文是一段由数字0-9组成的数字串,通过一个特殊的密码本查找转换,生成另一段密文数字串。规则如下: 1. 明文为一段数字串,由0-9组成。 2. 密码本为数字0-9组成的二维数组。 3. 需要按明文串的数字顺序在密码本里找到同样的数字串,密码本里的数字串是由数字组成,上下和左右是相邻的,注意:对角线不相邻,。 4. 每一位明文对应密文即为密码本中找到的单元格所在的行和列序号(序号从0开始)组成的两个数字。如明文第i位Data[i]对应密码本单元格为Book[X][Y],则明文第i位对应的密文为X Y,X和Y之间用空格隔开。 如果有多条密文,返回。如果密码本无法匹配,返回"error"。 请你帮小慕设计这个加密程序。
提示:带虚线的词点一下有通俗解释。
输入描述
<p> 第一行输入1个正整数N,代表明文的长度(1 <= N <= 9) </p> <p> 第二行输入N个明文数字组成的序列Data[i](整数,0 <= Data[i] <= 9) </p> <p> 第三行输入1个正整数M,(1 <= M <= 9) </p> <p> 接下来输入一个M*M的矩阵代表密码本Book[i][i],(整数,0 <= Book[i][i] <= 9) </p>
输出描述
如明文 第i位Data[i]对应密码本单元格为Book[i][j],则明文第i位对应的密文为X Y,X和Y之间用空格隔开。如果有多条密文,返回字符序最小的密文。如果密码本无法匹配,返回"error"。
示例
示例 1
输入
4 0 0 2 4 4 0 0 2 4 1 3 4 6 3 4 1 5 6 6 6 5
输出
0 0 0 1 0 2 0 3
示例 2
输入
2 0 3 3 0 0 2 1 3 4 6 6 4
输出
0 1 1 1
时间限制 1000 ms · 内存限制 128 MB