1583 转换数列
Submit solution
Points:
100
Time limit:
1.0s
Memory limit:
32M
Problem types
Allowed languages
C, C++, Java, Python
Description
一个数列转换到另一个数列,可以用一个转换数列来描述.这里所说的转换只是简单地调换下数列中一些数的位置.例如{a,b,c,d} => {b,c,a,d}
转换数列由N个数组成,每个数分别是0,1,2..,N-1中的一个,且这N个数全部出现.如果转换数列的第i个数是j,则表示原数列的第i个数被放到了目标数列的第j个位置. 例如转换数列是{2,1,0,3},那么转换是这样的{a,b,c,d} => {c,b,a,d}.
令长度为N的数列原始数列都是{0,1,2…,N-1}
给出转换数列和目标数列,让你求最少经过多少次转换才能得到目标数列.
Input
多组数据,每组数据第一行是N(N<=10) 第二行是N个数,表示转换数列 第三行也是N个数,表示目标数列
Output
输出最少要转换多少次,如果永远不能得到目标数列则输出impossible
Sample
Input
3
2 0 1
2 0 1
4
3 0 1 2
2 0 1 3
Output
2
impossible
Source: zjut_DD
Comments