小红的不动点分配
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小红拿到了 2\times n 个元素,现在她想将这些元素划分为两组(每组恰好 n 个元素),且两组内部的顺序均可任意重排。
\hspace{15pt}她想知道,这两个数组的不动点数量之和最多是多少,请你帮帮她。

【名词解释】
\hspace{15pt}不动点:定义整数 i\left(1\leqq i \leqq m \right) 是长度为 m 的数组 \{a_1,a_2,\dots,a_m\} 的一个不动点,当且仅当满足 a_i = i

输入描述:

\hspace{15pt}第一行输入一个整数 n \left(1 \leqq n \leqq 2\times10^5 \right)
\hspace{15pt}第二行输入 2\times n 个正整数 a_1,a_2,\dots,a_{2\times n} \left(1\leqq a_i \leqq 2\times 10^5 \right),代表数组中的元素。

输出描述:

\hspace{15pt}输出一个整数,代表两个数组的不动点数量之和的最大值。
示例1

输入

复制
3
1 1 4 5 1 4

输出

复制
2
示例2

输入

复制
1
1 2

输出

复制
1