M - Strong String
Editorial
/
/
Time Limit: 2 sec / Memory Limit: 1024 MiB
配点 : 500 点
問題文
以下の条件をすべて満たす英大文字からなる長さ 2N の文字列 S としてありえるものの個数を 998244353 で割った余りを求めよ。
- どの隣接している文字も同じでない。
- 最初の N 文字と最後の N 文字が一致しない。具体的には、 S_1 \neq S_{N+1}, S_2 \neq S_{N+2}, \ldots, S_N \neq S_{2N} のいずれかが成り立つ。
- 1 以上 K 以下の整数 i について、 S_{A_i}=C_i を満たす。
制約
- 1 \leq N \leq 10^9
- 0 \leq K \leq 10^5
- 1 \leq A_i \leq 2N (1 \leq i \leq K)
- A_i < A_{i+1} (1 \leq i \leq K-1)
- C_i (1 \leq i \leq K) はすべて英大文字
- N, K, A_i (1 \leq i \leq K) はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
N K A_1 C_1 A_2 C_2 \vdots A_K C_K
出力
答えを出力せよ。
入力例 1
2 2 1 T 4 A
出力例 1
600
例えば、 TUNA のような文字列は条件を満たしますが、 TATA , TTTA のような文字列は条件を満たしません。
入力例 2
3 4 1 B 2 E 3 E 4 T
出力例 2
0
残りの部分にどのような文字を入れても 2 文字目と 3 文字目が同じであるため、条件を満たすことはありません。
入力例 3
1 0
出力例 3
650
入力例 4
6 2 4 O 7 S
出力例 4
606171726
答えを 998244353 で割った余りを求めることを忘れないでください。