站外题求解。
第 2 题 奶牛排队
描述
农夫有 N (1≤N≤100) 条编号为1..N的奶牛按照数组 Ai 站成一排,但是为了拍照需要要把这些奶牛按照所谓的循环圆进行调整为数组 Bi 排队。
例如,奶牛们初始是按照 A = 5、1、4、2、3 排队,为了拍照最后要调整为B = 2 5 3 1 4,调整的方法是,具体循环圆如下:
在初始 A 数组奶牛 5 是排在第一位的,在B数组是排在第2,那么奶牛 5 就调到 A 数组的第 2 个位置取代奶牛 1。
奶牛 1 在 B 数组时排在第 4 个位置,那么奶牛1就调到 A 数组第 4 个位置取代奶牛 2,奶牛 2 在 B 数组排在第 1 个位置,那么奶牛 2 就调到 A 数组第 1 个位置,因为第 1 个位置是奶牛 5 的起始位置,那么这个循环圆调整结束,这个循环圆由 5、1、2 组成而且他们都最终到达了最终位置。
剩下由奶牛 4 开始,因为奶牛 4 在 B 数组排在第 5 个位置,那么奶牛 4 在 A 数组调到第 5 个取代奶牛 3,奶牛 3 在 B 数组排在第 3 个位置,那么奶牛 3 在 A 数组调到第 3 个位置,这个位置刚好是奶牛 4 的起始位置,这样奶牛 4、3 也是一个循环圆。
通过这两个循环圆,奶牛从初始的 A 数组调整到最终的 B 数组位置。
输入
第一行:一个整数 N
第2..N+1行:行 i+1 代表 Ai
第2+N..1+2N行:代表 Bi
输出
两个整数分开的整数,第一个代表有多少个循环圆,第二个代表最长循环圆的长度。如果一个循环圆都不需要做,第二个数输出 −1。
和同学们调了好久都不行,求大佬解决,必关注,谢谢。