完美序列
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定一个序列 a_1, a_2, \cdots, a_n。对于从 a 中选取的 m 个元素任意排列组成的新序列 b,如果 m 是偶数并且 b_1 + b_2 = b_3 + b_4 = \cdots = b_{m-1} + b_m ,则称它是完美的。确定完美序列 b 最大长度。

输入描述:

第一行,输入一个整数 n (1 \leq n \leq 2 \cdot 10^5),表示给定序列 a 的大小。
第二行,输入 n 个整数 a_1, a_2, \cdots, a_n (1 \leq a_i \leq 5000),表示给定序列 a

输出描述:

一行,一个整数,表示完美序列 b 最大长度。
示例1

输入

复制
10
1 2 3 4 5 6 7 8 9 10

输出

复制
10

说明

一种最优方案为 b = [1, 10, 2, 9, 3, 8, 4, 7, 5, 6] ,可以证明不存在结果大于 10 的方案。
示例2

输入

复制
7
3 4 5 3 4 2 3

输出

复制
6

说明

b_1 + b_2 = 6 时,一种最优的方案为 b = [2, 4, 3, 3],长度为 4
b_1 + b_2 = 7 时,一种最优的方案为 b = [2, 5, 3, 4, 3, 4],长度为 6
b_1 + b_2 = 8 时,一种最优的方案为 b = [4, 4, 3, 5],长度为 4
b_1 + b_2 = 9 时,一种最优的方案为 b = [4, 5],长度为 2
完美序列 b 最大长度为 6