AT_abc262_g [ABC262G] LIS with Stack
题目描述
### 题目大意
给定空序列 $X$ 、空栈 $S$ 和一个长度为 $N$ 的序列 $A=(a_1,a_2,\cdots,a_N)$ 。
对于 $i=1,2,\cdots,N$ ,有两种操作可以选择:
+ 在栈 $S$ 中插入 $a_i$ 。
+ 把 $a_i$ 从 $A$ 中删除。
(以上两种二选一)
* 当 $S$ 不为空时,把 $S$ 的栈顶移动到 $X$ 的尾处。(无论进行此操作与否)
求出序列 $X$ 的最大得分:
- 若 $X$ 是不降序列,得分为 $X$ 的长度
- 否则得分为 $0$
输入格式
无
输出格式
无
说明/提示
### 制約
- $ 1\ \leq\ N\ \leq\ 50 $
- $ 1\ \leq\ a_i\ \leq\ 50 $
- 入力はすべて整数
### Sample Explanation 1
以下のように操作をすると最終的な $ X $ が $ (1,1,2,3,4) $ となり、スコアが $ 5 $ になります。 - $ a_1=1 $ を $ S $ の先頭に移動させる。 - $ S $ の先頭の $ 1 $ を $ X $ の末尾に移動させる。 - $ a_2=2 $ を $ S $ の先頭に移動させる。 - $ a_3=3 $ を捨てる。 - $ a_4=4 $ を $ S $ の先頭に移動させる。 - $ a_5=1 $ を $ S $ の先頭に移動させる。 - $ S $ の先頭の $ 1 $ を $ X $ の末尾に移動させる。 - $ a_6=2 $ を $ S $ の先頭に移動させる。 - $ S $ の先頭の $ 2 $ を $ X $ の末尾に移動させる。 - $ a_7=3 $ を $ S $ の先頭に移動させる。 - $ S $ の先頭の $ 3 $ を $ X $ の末尾に移動させる。 - $ S $ の先頭の $ 4 $ を $ X $ の末尾に移動させる。 また、スコアを $ 6 $ 以上にすることは出来ません。よってスコアの最大値は $ 5 $ です。