No.2585 How many "Who is Santa?"
タグ : / 解いたユーザー数 42
作問者 : netyo715 / テスター : 👑 p-adic
問題文
整数 $N$ が与えられます。
あなたは次の問題「Who is Santa?」の、入力の $M$ が $N$ であるようなテストケースを作ることにしました。
「Who is Santa?」の制約を満たす入力の内 $M=N$ であるものの個数を $998244353$ で割ったあまりを出力してください。
詳しくはサンプルを参照してください。
Who is Santa?
問題文
$1$ から $M$ の番号が付けられた $M$ 人の人がいます。
$M$ 人の内 $1$ 人だけがサンタで、$M$ 人の人全員がそれを把握しています。
人 $i$ は人 $A_i(i \neq A_i)$ について、$L_i = 0$ のときサンタではないと、$L_i = 1$ のときサンタであると言っています。
サンタは必ず嘘を吐き、サンタでない人は必ず正しいことを言います。
人々はサンタが $1$ 人に定まるように発言しています。
サンタが $1$ 人に定まるとは
次の条件を全て満たす整数 $i$ が $1$ つだけ存在するとき、発言からサンタが $1$ 人に定まるとします。
- 人 $i$ は人 $A_i$ がサンタであると言っている。
- 人 $i$ 以外の人についてサンタであると言っているのは人 $i$ だけである。
- 人 $i$ がサンタではないと言っている人が存在しない。
サンタの番号を答えてください。
入力
$M$ $L_1$ $A_1$ $L_2$ $A_2$ : $L_M$ $A_M$
- 入力は全て整数
- $2 \leq M$
- $L_i \in \{0, 1\}$
- $1 \leq A_i \leq M$
- $A_i \neq i$
- 入力からサンタが $1$ 人に定まる
出力
サンタの番号を出力してください。
サンプル
入力
3 1 2 1 1 0 1出力
2
- 人 $1$ は人 $2$ のことをサンタだと言っています。
- 人 $2$ は人 $1$ のことをサンタだと言っています。
- 人 $3$ は人 $1$ のことをサンタではないと言っています。
入力
$N$
- $N$ は整数
- $2 \leq N \leq 20231225$
出力
「Who is Santa?」の制約を満たす入力の内、 $M=N$ であるものの個数を $998244353$ で割ったあまりを出力してください。
最後に改行してください。
サンプル
サンプル1
入力
3
出力
24
「Who is Santa?」の入力の内、制約を満たすものは $24$ 個です。
例えば、次の入力は全ての制約を満たしており、$24$ 個の入力に含まれます。
3 1 2 1 1 0 2
次の入力は制約の「入力からサンタは $1$ 人に定まる」を満たさず、$24$ 個の入力に含まれません。
3 1 2 1 3 1 1
サンプル2
入力
4
出力
312
例えば、次の入力は制約の「入力からサンタは $1$ 人に定まる」を満たさず、$312$ 個の入力に含まれません。
4 1 2 1 1 0 4 0 3
サンプル3
入力
3018570
出力
1213
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。