#ABC262G. 带栈的 LIS

带栈的 LIS

带栈的 LIS

题目描述

有一个空序列 XX 和一个空栈 SS。此外,给定长度为 NN 的整数数列 A=(a1,,aN)A=(a_1,\ldots,a_N)

对于每个 i=1,,Ni=1,\ldots,N,按顺序依次进行,Takahashi 需要执行以下操作之一:

  • 将整数 aia_i 压入 SS 的栈顶。
  • AA 中丢弃整数 aia_i

此外,只要 SS 非空,Takahashi 就可以随时执行以下操作:

  • SS 栈顶的整数移到 XX 的末尾。

最终 XX 的得分定义如下:

如果 XX 是非递减的,即对于所有整数 i (1i<X)i\ (1 \le i \lt |X|),设 X=(x1,,xX)X=(x_1,\ldots,x_{|X|}),满足 xixi+1x_i \le x_{i+1},则得分为 X|X|(其中 X|X| 表示 XX 的元素个数)。

如果 XX 不是非递减的,则得分为 00

求可能达到的最大得分。

输入格式

输入按以下格式从标准输入给出:

NN
a1a_1 \ldots aNa_N

输出格式

输出答案。

样例

7
1 2 3 4 1 2 3
5

通过以下操作可以使最终的 XX 变为 (1,1,2,3,4)(1,1,2,3,4),得分为 55

  • a1=1a_1=1 压入 SS 的栈顶。
  • SS 栈顶的 11 移到 XX 的末尾。
  • a2=2a_2=2 压入 SS 的栈顶。
  • 丢弃 a3=3a_3=3
  • a4=4a_4=4 压入 SS 的栈顶。
  • a5=1a_5=1 压入 SS 的栈顶。
  • SS 栈顶的 11 移到 XX 的末尾。
  • a6=2a_6=2 压入 SS 的栈顶。
  • SS 栈顶的 22 移到 XX 的末尾。
  • a7=3a_7=3 压入 SS 的栈顶。
  • SS 栈顶的 33 移到 XX 的末尾。
  • SS 栈顶的 44 移到 XX 的末尾。

无法使得分达到 66 或更大,所以最大得分为 55

10
1 1 1 1 1 1 1 1 1 1
10

数据范围

  • 1N501 \le N \le 50
  • 1ai501 \le a_i \le 50
  • 输入均为整数
难度 省选/NOI-
通过率
尝试 0
已通过 0
ID
2471
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签