T103785 墙(wall)
题目描述
$Trump$先生喜欢墙。他特别喜欢那种看上去参差不齐实际上十分有序的墙。
具体来说,如果把墙的高度表示成长度为$L$的一个数列,这个序列满足以下要求:
1. 存在一条以第一个数为起点的上升子序列,它的长度大于 $\displaystyle \frac{L}{2}$
2. 存在一条以第一个数为起点的下降子序列,它的长度大于 $\displaystyle \frac{L}{2}$
3. 不存长度超过 2 的连续单调子序列
$Trump$先生的手下克劳恩皮斯已经修好了一堵墙,它的高度可以表示为一个 长度为 $n$ 的排列。为了迎合 $Trump $先生的喜好以及节省经费,她想要保留原排 列的一个子序列,使得 $Trump$ 先生能够喜欢高度为这个子序列的墙。
那么,请你告诉她,这样的子序列有多少个?答案对一个模数 $p$ 取模。
输入格式
第一行为两个整数 $n,p$
接下来为一行$n$个整数,代表已经修好的墙的高度
输出格式
输出一行一个整数,代表答案
说明/提示
**【样例解释 】**
子序列分别是$\{2\},\{1\},\{3\},\{2,1,3\}$
对于 $8\%$的数据,满足 $n \le 8$
对于 $20\%$的数据,满足 $n \le 50$
对于 $32\%$的数据,满足 $n \le 200$
对于 $48\%$的数据,满足 $n \le 700$
对于 $64\%$的数据,满足 $n \le 2000$
对于另外 $8\%$ 的数据,满足已经修好的墙的高度是$\{1,2,3,\dots,n\}$
对于另外 $8\%$ 的数据,满足 $p=2$
对于 $100\%$的数据,满足 $1 \le n \le 6000,2 \le p \le 1000000000$
注意本题空间限制与另外两题不同。