1110: 金字塔序列
Memory Limit:128 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:151
Solved:38
Description
对于正整数 \( k \),大小为 \( k \) 的金字塔序列是一个长度为 \( 2k - 1 \) 的序列,其项依次为 \( 1, 2, \ldots, k, k-1, \ldots, 2, 1 \)。
给定一个长度为 \( N \) 的序列 \( A = (A_1, A_2, \ldots, A_N) \)。
通过反复选择并执行以下操作之一,可以得到的金字塔序列的最大长度是多少?
- 选择序列中的一项并将其值减去 1。
- 移除第一个或最后一个项。
可以证明,问题的约束条件保证通过重复操作至少可以获得一个金字塔序列。
给定一个长度为 \( N \) 的序列 \( A = (A_1, A_2, \ldots, A_N) \)。
通过反复选择并执行以下操作之一,可以得到的金字塔序列的最大长度是多少?
- 选择序列中的一项并将其值减去 1。
- 移除第一个或最后一个项。
可以证明,问题的约束条件保证通过重复操作至少可以获得一个金字塔序列。
Input
约束条件如下:
- \( 1 \leq N \leq 2 \times 10^5 \)
- \( 1 \leq A_i \leq 10^9 \)
- \( 1 \leq N \leq 2 \times 10^5 \)
- \( 1 \leq A_i \leq 10^9 \)
- 所有输入值都是整数。
输入格式如下:
N
A_1 A_2 ... A_N
其中:
- 第一行是整数 \( N \),表示序列的长度。
- 第二行是 \( N \) 个正整数 \( A_1, A_2, \ldots, A_N \)。
你的任务是通过选择并执行给定的操作,找到可以得到的金字塔序列的最大长度。
Output
输出格式如下:
输出可以通过对序列 \( A \) 反复执行问题陈述中描述的操作得到的金字塔序列的最大长度。
输出可以通过对序列 \( A \) 反复执行问题陈述中描述的操作得到的金字塔序列的最大长度。
Sample Input Copy
5
2 2 3 1 1
Sample Output Copy
2
HINT
以 \( A = (2, 2, 3, 1, 1) \) 为例,你可以通过以下步骤创建一个大小为 2 的金字塔序列:
- 选择第三项并将其值减 1,序列变为 \( A = (2, 2, 2, 1, 1) \)。
- 移除第一项,序列变为 \( A = (2, 2, 1, 1) \)。
- 移除最后一项,序列变为 \( A = (2, 2, 1) \)。
- 选择第一项并将其值减 1,序列变为 \( A = (1, 2, 1) \)。
\( (1, 2, 1) \) 是一个大小为 2 的金字塔序列。
另一方面,没有办法通过操作创建一个大小为 3 或更大的金字塔序列,所以你应该输出 2。
- 选择第三项并将其值减 1,序列变为 \( A = (2, 2, 2, 1, 1) \)。
- 移除第一项,序列变为 \( A = (2, 2, 1, 1) \)。
- 移除最后一项,序列变为 \( A = (2, 2, 1) \)。
- 选择第一项并将其值减 1,序列变为 \( A = (1, 2, 1) \)。
\( (1, 2, 1) \) 是一个大小为 2 的金字塔序列。
另一方面,没有办法通过操作创建一个大小为 3 或更大的金字塔序列,所以你应该输出 2。