题目描述
長さ N の整数列 A = (A1, …, AN) が与えられます。
(1, 2, …, N) を並べ替えて得られる列 P = (P1, …, PN) であって、次の条件を満たすものの総数を 998244353 で割った余りを求めてください。
- APi < APi + 1 となるような 1 以上 N−1 以下の整数 i がちょうど K 個存在する。
输入格式
入力は以下の形式で標準入力から与えられる。
N K A1 … AN
输出格式
答えを出力せよ。
题目大意
题目描述
给定一个正整数序列 A=(a1,a2,…,an),问有多少个 1∼n 的排列 P=(p1,p2,…,pn) 满足:
- 存在恰好 k 个整数 i(1⩽i⩽n−1) 满足 api<api+1
对 998244353 取模。
输入格式
第一行两个整数 n,k,含义如题意所示。
第二行 n 个整数,第 i 个整数表示 ai。
输出格式
输出一个整数,表示满足条件的排列 P 个数。
数据范围
$2\leqslant n\leqslant 5000,0\leqslant k\leqslant n-1,1\leqslant a_i\leqslant n$
样例解释
只有四个排列 P 满足条件,分别是 (1,3,2,4),(1,4,2,3),(2,3,1,4),(2,4,1,3)。
4 2
1 1 2 2
4
10 3
3 1 4 1 5 9 2 6 5 3
697112
提示
制約
- 2 ≤ N ≤ 5000
- 0 ≤ K ≤ N − 1
- 1 ≤ Ai ≤ N (1 ≤ i ≤ N)
- 入力は全て整数
Sample Explanation 1
$ P\ =\ (1,\ 3,\ 2,\ 4),\ (1,\ 4,\ 2,\ 3),\ (2,\ 3,\ 1,\ 4),\ (2,\ 4,\ 1,\ 3) $ の 4 通りが条件を満たします。