SP7337 SHUFFLE1 - Shuffling

题目描述

一家赌场拥有一台昂贵的洗牌机,每次最多可以洗 520 张牌(每副牌有 52 张)。为了简单起见,我们将这些牌标记为 1, 2, 3, ..., N,其中 N 是总的牌数。不同副牌中的同一张牌(比如黑桃 A)被认为是不同的。不幸的是,这台洗牌机有缺陷,它总是以固定的方式洗牌。由于制造这种机器的公司已经因为经济衰退倒闭,没有人能修理这台机器,而买新机器的成本又太高。 作为聪明的员工,你意识到这并不是无计可施。只要反复使用这台机器,将牌放入多次,你依旧可以获得不同的洗牌结果。例如,假如机器将牌 1, 2, 3, 4 洗成 2, 3, 4, 1 的顺序。如果你再次将洗好的牌按顺序投入机器,就会得到 3, 4, 1, 2 的结果。这样,尽管可能花费更长时间,也能得到很多不同的洗牌顺序。不过这并不算什么大问题,因为牌组不需要频繁重新洗,而在使用一副牌的同时也可以洗另一副牌来节省时间。 然而,并不是所有的洗牌结果都能通过这种方法得到。你希望知道这种方式会有利于赌场还是玩家。首先,你想了解的是哪些洗牌顺序是可以实现的,以及需要经过多少次洗牌才能达到所需顺序。

输入格式

每组输入数据有三行。第一行是一个整数 $N$,表示要洗的牌数。$N$ 是一个不超过 520 的正整数。第二行是一串用空格分开的整数 1, 2, ..., N,这表示当初始牌序为 1, 2, ..., N 时,机器能产生的洗牌顺序。第三行是我们希望得到的最终洗牌顺序,格式同上。输入的结束标志为一行 $N = 0$。

输出格式

对于每组数据,输出一个整数,表示需要通过机器洗牌的最少次数(包括零次)以得到所期望的洗牌顺序。如果无法实现,输出 -1。你可以假设答案总是在 32 位有符号整数范围内。 **本翻译由 AI 自动生成**