AT_arc168_c [ARC168C] Swap Characters
Description
[problemUrl]: https://atcoder.jp/contests/arc168/tasks/arc168_c
`A`, `B`, `C` からなる長さ $ N $ の文字列 $ S $ が与えられます.
以下の操作を $ 0 $ 回以上 $ K $ 回以下行うことを考えます.
- $ S $ 内の $ 2 $ 文字を自由に選び,入れ替える.
操作後の $ S $ としてあり得る文字列が何通りあるかを $ 998244353 $ で割ったあまりを求めてください.
Input Format
入力は以下の形式で標準入力から与えられる.
> $ N $ $ K $ $ S $
Output Format
答えを出力せよ.
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 250000 $
- $ 1\ \leq\ K\ \leq\ 100 $
- $ S $ は `A`, `B`, `C` からなる長さ $ N $ の文字列.
- 入力される値はすべて整数.
### Sample Explanation 1
以下のように $ 4 $ 通りの文字列が得られます. - $ S= $`ABC` : $ 0 $ 回の操作を行えばよい. - $ S= $`BAC` : $ 1,2 $ 文字目を入れ替える操作を行えばよい. - $ S= $`CBA` : $ 1,3 $ 文字目を入れ替える操作を行えばよい. - $ S= $`ACB` : $ 2,3 $ 文字目を入れ替える操作を行えばよい.