TSG LIVE! 14 プログラミングコンテスト
コンテスト日時
2025/05/25 (Su) 16:00 - 17:40

L - 01 String and Sequence

ผักชี
4
s
1024
MB
650

問題文

正整数 $N$ および $1$ 以上 $998244352$ 以下の整数 $X$ が与えられます。

長さ $N$ で各項が $1$ 以上 $N$ 以下の数列 $A=(A_1, \cdots, A_N)$ であって、以下の条件を満たすものの個数を $998244353$ で割った余りを求めてください。

  • 以下の条件を満たす長さ $N$ の文字列 $S$ の個数を $998244353$ で割った余りは $X$ である。
    • $S$ の各文字は 0, 1 からなる。
    • $1 \leq i \leq N$ を満たす全ての整数 $i$ について $S_i \neq S_{A_i}$ である。

制約

  • 入力は全て整数
  • $1 \leq N \leq 2 \times 10^5$
  • $1 \leq X \leq 998244352$

入力

入力は以下の形式で標準入力から与えられる。

$N\ X$

出力

答えを出力してください。

入力例 1
3 2
出力例 1
6

例えば数列 $A=(2,1,2)$ は条件を満たします。 $S$ としてありうるものは 010 101 と全部で $2$ 通り存在します。

入力例 2
100000 23226277
出力例 2
122569763
入力例 3
100 3
出力例 3
0
提出
C++23 (g++ 12.2.0)