#P1244. 奶牛排队(reorder)
奶牛排队(reorder)
题目描述
农夫 FJ 有N (1 <= N <= 100) 条编号为 [1..N] 的奶牛按照数组 A[i] 站成一排,但是为了拍照需要要把这些奶牛按照所谓的循环圆进行调整为数组B[i]排队。
例如,奶牛们初始是按照 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 代表 A[i]
第2+N..1+2N 行:代表 B[i]
输出格式
两个整数,第一个代表有多少个循环圆,第二个代表最长循环圆的长度。
样例
5
5 1 4 2 3
2 5 3 1 4
2 3
样例解释
有两个循环圆分别是:5、1、2和3、4。