AiScReam
- サンプル1の説明が適切でなかったため修正しました。(2025/12/17 3:23)
問題文
moguさんは、1 から N までの整数について、M 個の質問を投げられ、それぞれ次のように答えました。
- moguさんは、1 から N までの整数 ai,bi について、 ai よりも bi の方が好きである。
1 から N までの整数を並び替えてできる数列 P=(p1,p2,...,pN) のうち、全ての i(1≤i≤M) について pbi<pai を満たすようなものの個数を
998244353 で割った余りを求めてください。
制約
- 2≤N≤20
- 1≤M≤N(N−1)
- 1≤ai,bi≤N
- ai=bi
- 条件を満たす P は必ず存在する。
入力
入力はすべて整数である。
N M
a_1 b_1
a_2 b_2
...
a_M b_M
出力
1 から N までの整数を並び替えてできる数列 P=(p1,p2,...,pN) のうち、全ての i(1≤i≤M) について pbi<pai を満たすようなものの個数を
998244353 で割った余りを1行に出力せよ。
サンプル
条件より、p3<p2<p1 となります。残った p4 は p1,p2,p3 で使われなかった 1 個の整数なので、条件を満たす数列の個数は p4 の選び方の総数より 4 個となります。
条件を満たす数列は P=(1,2) しかありえません。