SZ#G6DP14. 【GESP强化 六级】金字塔

提交1 通过1
通过率100%
时间限制2000ms
内存限制256MiB
    ID: 11528 传统题 2000ms 256MiB 尝试: 1 已通过: 1 难度: 普及- 上传者: 标签>GESPGESP强化C++c++编程题简单序列型DP一维DP双向递推2星

题目描述

对于正整数 kk金字塔数列(ピラミッド数列)是指长度为 2k12k-1 的数列,其各项依次为 1,2,,k1,k,k1,,2,11,2,\ldots,k-1,k,k-1,\ldots,2,1

给定一个长度为 NN 的数列 A=(A1,A2,,AN)A=(A_1,A_2,\ldots,A_N)
你可以对 AA 重复进行以下两种操作中的任意一种(可以操作 00 次):

  • 选择数列中的一项,将其值减少 11
  • 删除数列的首项或末项。

请你求出,通过上述操作可以得到的金字塔数列的最大可能尺寸 kk

在本题的约束条件下,可以证明通过操作一定能得到至少一种金字塔数列。

输入格式

输入以如下格式从标准输入读入:

NN A1A_1 A2A_2 \ldots ANA_N

输出格式

输出通过对数列 AA 重复进行题目描述中的操作后,能够得到的金字塔数列的最大尺寸。

5
2 2 3 1 1
2
5
1 2 3 4 5
3
1
1000000000
1

说明/提示

约束

  • 1N2×1051\leq N\leq 2\times 10^5
  • 1Ai1091\leq A_i\leq 10^9
  • 所有输入均为整数

样例解释 1

A=(2,2,3,1,1)A=(2,2,3,1,1) 为例,可以通过如下操作得到尺寸为 22 的金字塔数列:

  • 选择第 33 项,将其减少 11,数列变为 A=(2,2,2,1,1)A=(2,2,2,1,1)
  • 删除首项,数列变为 A=(2,2,1,1)A=(2,2,1,1)
  • 删除末项,数列变为 A=(2,2,1)A=(2,2,1)
  • 选择第 11 项,将其减少 11,数列变为 A=(1,2,1)A=(1,2,1)

(1,2,1)(1,2,1) 就是尺寸为 22 的金字塔数列。

另一方面,无论如何操作,都无法得到尺寸为 33 或更大的金字塔数列,因此输出 22