$2n$ 名士兵排成两行。他们需要重新排列,使得每一行中都没有身高相同的士兵——如果满足这一条件,我们就称士兵们排列得当。
一次操作包含交换处于相同位置(但在不同行)的两名士兵。你的任务是确定使士兵排列得当所需的最少交换次数。
样例
下图中展示了 18 名士兵排成的两行。箭头指示了将士兵重新排列得当所需的交换。
任务
编写一个程序:
- 从标准输入读取士兵的人数以及他们初始站立时的身高,
- 确定使士兵排列得当所需的最少交换次数(交换处于相同位置但不同行的士兵),
- 将结果写入标准输出。
输入格式
输入的第一行包含一个整数 $n$,$1 \le n \le 50\,000$。两行中每行各有 $n$ 名士兵。接下来的两行中,每行包含 $n$ 个由空格分隔的正整数。第二行包含数字 $x_1, x_2, \dots, x_n$,$1 \le x_i \le 100\,000$;$x_i$ 表示第一行第 $i$ 名士兵的身高。第三行包含数字 $y_1, y_2, \dots, y_n$,$1 \le y_i \le 100\,000$;$y_i$ 表示第二行第 $i$ 名士兵的身高。
保证测试数据中的实例均可以使士兵排列得当。
输出格式
在标准输出的第一行(也是唯一一行)中,输出一个整数,即使士兵排列得当所需的最少交换次数。
样例
输入 1
9 2 5 5 2 7 4 7 3 9 1 6 8 4 6 3 9 1 8
输出 1
3