M - Majority and Permutation
Editorial
/
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 100 点
問題文
1 以上 2N-1 以下の奇数からなる長さ M の整数列 (A_1,A_2,\dots,A_M) が与えられます。
(1,2,\dots,2N) の順列 P=(P_1,P_2,\dots,P_{2N}) のうち、以下の条件を満たすものの個数を 998244353 で割った余りを求めてください。
0
,1
のみからなる長さ 2N の文字列 S であって、以下の条件を全て満たすものが存在する。- S は N 文字の
0
と N 文字の1
からなる文字列である。 - i=1,2,\dots,M に対し、S の 1,2,\dots,A_i 文字目に登場する文字のうち、最も多いのは
0
である。 - i=1,2,\dots,M に対し、S の P_1,P_2,\dots,P_{A_i} 文字目に登場する文字のうち、最も多いのは
0
である。
- S は N 文字の
制約
- 入力は全て整数
- 1 \leq M \leq N \leq 10^{5}
- 1 \leq A_1 < A_2 < \dots < A_M \leq 2N-1
- A_i は奇数
入力
入力は以下の形式で標準入力から与えられる。
N M A_1 A_2 \dots A_M
出力
答えを 1 行に出力せよ。
入力例 1
2 2 1 3
出力例 1
14
例えば P=(2,1,3,4) の場合、S= 0011
とすると 3 つの条件を全て満たす文字列となっています。
一方、P=(4,3,2,1) の場合、3 つの条件を全て満たす長さ 4 の文字列は存在しません。
入力例 2
3 1 3
出力例 2
684