#5085. 列表

列表

题目描述

有一个长度为 2N+12N+1 的整数列表 aa,初始恰好为 2N+12N+1 的排列。有一个集合 SS 初始为空。进行 N+1N+1 次操作,第 ii 次操作如下:

  1. 选择列表最中间位置的数(第 N+2iN+2-i 个数),从列表中删除该数字,并将该删除的数字加入集合 SS
  2. 如果不是最后的第 N+1N+1 次操作,则再任选列表中的一个数字删除。

操作结束后,列表为空,集合 SS 包含了 N+1N+1 个数字。

你需要求出集合 SS 里面的单个连续数字段的最大可能值。一个连续数字段指集合 SS 的一个子集,满足这个子集的数去重排序之后任意相邻两个数差全部都为 11。(大小为 0,10,1 的子集也算连续数字段)

输入格式

输入文件名为 list.in

第一行一个非负整数 NN

第二行 2N+12N+1 个整数,表示初始列表 aa。保证 112N+12N+1 的整数出现各一次。

输出格式

输出文件名为 list.out

一行一个非负整数表示连续数字段的最大可能值。

3
4 7 3 6 1 2 5
3

样例解释 1

  1. 开始列表为 4,7,3,6,1,2,54,7,3,6,1,2,5SS 加入 66,删去 11,结束后 S={6}S=\{6\}
  2. 列表为 4,7,3,2,54,7,3,2,5SS 加入 33,删去 77,结束后S={3,6}S=\{3,6\}
  3. 列表为 4,2,54,2,5SS 加入 22,删去 55,结束后 S={2,3,6}S=\{2,3,6\}
  4. 列表为 44SS 加入 44,结束后 S={2,3,4,6}S=\{2,3,4,6\}
7
1 15 2 14 3 13 4 12 5 11 6 10 7 9 8
8
1
1 2 3
2

数据范围与提示

对于 100%100\% 的数据,1N2×1051\le N\le 2\times 10^5。保证列表中恰好出现 112N+12N+1 各一次。

  • 子任务 111010 分):1N101\le N\le 10
  • 子任务 223030 分):1N5001\le N\le 500
  • 子任务 333030 分):1N5×1041\le N\le 5\times 10^4
  • 子任务 4455 分):列表初始顺序为从小到大;
  • 子任务 552525 分):无特殊限制;