P12880 [蓝桥杯 2025 国 C] 数字配对

题目描述

小蓝有一个长度为 $n$ 的正整数数组 $A = [a_1, a_2, \cdots, a_n]$,每当他从中拿出一对数 $(a_i, a_j)$,其中 $i < j$,他会得到它们的差 $b = a_j - a_i$。然而,他特别喜欢整数 $1$,所以他想知道在数组 $A$ 中最多同时能取出多少对正整数 $(a_i, a_j)$,每个数最多被取一次,使得它们的差为 $1$。

输入格式

输入的第一行包含一个正整数 $n$。 第二行包含 $n$ 个正整数 $a_1, a_2, \cdots, a_n$,相邻整数之间使用一个空格分隔。

输出格式

输出一行包含一个整数表示答案。

说明/提示

**【样例说明】** 其中一种方案:$(a_1, a_3), (a_4, a_6)$。 提示:$(a_1, a_2)$ 的差为 $a_2 - a_1 = -1$,不是小蓝喜欢的。 **【评测用例规模与约定】** 对于 $40\%$ 的评测用例,$1 \leq n \leq 10^3$,$1 \leq a_i \leq 10^3$; 对于所有评测用例,$1 \leq n \leq 10^6$,$1 \leq a_i \leq 10^6$。