P11929 [PA 2025] 光滑排列 / Gładkie permutacj
题目背景
PA 2025 R5A.
题目描述
对于序列 $a=[a_1,a_2,\ldots,a_k]$,我们说:
- $a$ 是递增的,当且仅当 $a_1\lt a_2\lt \ldots\lt a_k$;
- $a$ 是递减的,当且仅当 $a_1\gt a_2\gt \ldots\gt a_k$;
- $a$ 是**单峰的**,当且仅当存在 $1\le l\le k$,使得 $[a_1,a_2,\ldots,a_l]$ 是递增的,且 $[a_l,a_{l+1},\ldots,a_k]$ 是递减的。
特别地,若 $k=1$,则 $a$ 既是递增的,也是递减的,也是单峰的。
对于正整数 $a,b,c$,我们说一个排列 $p$ 是好的,当且仅当:
- $p$ 的最长上升子序列(LIS)长度为 $a$;
- $p$ 的最长下降子序列(LDS)长度为 $b$;
- $p$ 的最长单峰子序列长度为 $c$。
> **例**
>
> $a=2,b=3,c=4$ 时,排列 $[4, 5, 2, 3, 1]$ 是好的,因为:
> - LIS 为 $[4, 5]$(长度 $2$);
> - LDS为 $[4, 2, 1]$(长度 $3$);
> - 最长单峰子序列为 $[4, 5, 3, 1]$(长度 $4$)。
给定 $a,b,c$ 满足 $1\le a\le b\le c\lt a+b$。求出:
1. 好的排列 $p$ 的长度的最大值(记为 $n$);
2. **长度为 $n$ 的**好的排列的数量对大素数 $\mathrm{mod}$ 取模后的结果。
可以证明,在题目条件下,好的排列至少有一个,且只有有限个。
输入格式
一行四个正整数 $a,b,c,\mathrm{mod}$。
输出格式
一行两个正整数:
- 最长的好的排列的长度 $n$;
- 长度为 $n$ 的好的排列的数量对 $\mathrm{mod}$ 取模后的结果。
说明/提示
### 样例解释
- 样例 $1$ 解释:
样例 $1$ 中,$a=2,b=2,c=3$。
所有好的排列为:
- $[1, 3, 2]$;
- $[2, 3, 1]$;
- $[2, 1, 4, 3]$;
- $[2, 4, 1, 3]$;
- $[3, 1, 4, 2]$;
- $[3, 4, 1, 2]$。
其中最长的排列长度为 $4$。
- 样例 $2$ 解释:
样例 $2$ 中,$a=2,b=3,c=3$。
所有好的排列为:
- $[3, 2, 1, 5, 4]$;
- $[3, 2, 5, 1, 4]$;
- $[4, 2, 1, 5, 3]$;
- $[4, 2, 5, 1, 3]$;
- $[4, 3, 1, 5, 2]$;
- $[4, 3, 5, 1, 2]$;
- $[5, 2, 1, 4, 3]$;
- $[5, 2, 4, 1, 3]$;
- $[5, 3, 1, 4, 2]$;
- $[5, 3, 4, 1, 2]$。
### 子任务
在大于 $0$ 分的子任务中,保证 $c = a + b - 1$。
### 数据范围
- $1 \leq a \leq 20$;
- $ a \leq b \leq 5\times 10^4$;
- $b \leq c \lt a + b$;
- $10^7 \leq \mathrm{mod} \leq 10^9$;
- $\mathrm{mod}$ 是素数。