编程题
### 问题描述 小齐养了 $N$ 头牛,编号为 $1$ 到 $N$,它们排成一行。它们的初始顺序由数组 $A$ 描述,其中 $A(i)$ 表示第 $i$ 头牛的编号。小齐希望重新排列它们以拍摄一张合照,新的排列由数组 $B$ 描述,其中 $B(i)$ 表示应该在位置 $i$ 结束的牛的编号。 例如,假设牛的初始排序如下: $A = 5 \ 1 \ 4 \ 2 \ 3$ 并且假设小齐希望它们按照以下方式重新排序: $B = 2 \ 5 \ 3 \ 1 \ 4$ 为了从$A$ 排序重新排列到 $B$ 排序,牛们执行若干“循环”移动。每次循环移动都以一头牛移动到她在 $B$ 排序中的正确位置开始,将另一头牛挤开,然后该牛移动到她的正确位置,挤开另一头牛,依此类推,直到最终一头牛在循环开始时占据的位置结束。 请计算不同循环移动的次数,以及参与最长循环移动的牛的数量。 ### 输入格式 第 $1$ 行:整数 $N$。 第 $2$ 行至 $1+N$ 行:第 $i+1$ 行包含整数 $A(i)$。 第 $2+N$ 行至 $1+2N$ 行:第 $1+N+i$ 行包含整数 $B(i)$。 ### 输出格式 两个用空格分隔的整数,第一个整数表示循环移动的次数,第二个整数表示参与最长循环移动的牛的数量。如果没有循环移动,则输出第二个数为 $-1$。 ### 样例输入 ``` 5 5 1 4 2 3 2 5 3 1 4 ``` ### 样例输出 ``` 2 3 ``` ### 评测数据规模 $1 \leq N \leq 100$。
查看答案
赣ICP备20007335号-2