atcoder#AGC061C. [AGC061C] First Come First Serve

[AGC061C] First Come First Serve

配点 : 800800

問題文

ある店を訪れる NN 人の客がおり、彼らを 1,,N1,\ldots,N と呼びます。客 ii は時刻 AiA_i に店に入り、時刻 BiB_i に店を出ます。この店の行列は「先入れ先出し」方式であり、AiA_iBiB_i も単調増加です。また、AiA_iBiB_i は全て異なります。

店の入口に、客が名前を書くリストがあります。それぞれの客は、入店時か退店時に一度だけ自分の名前をリストの末尾に書きます。最終的に名前が書かれる順序は何通りありうるでしょうか。 この数を 998244353998\,244\,353 で割った余りを求めてください。

制約

  • 1N51051 \leq N \leq 5 \cdot 10^5
  • 1Ai<Bi2N1 \leq A_i < B_i \leq 2N
  • Ai<Ai+1A_i < A_{i + 1} (1iN11 \leq i \leq N - 1)
  • Bi<Bi+1B_i < B_{i + 1} (1iN11 \leq i \leq N - 1)
  • AiBjA_i \neq B_j (iji \neq j)
  • 入力中の値は全て整数である。

入力

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

NN

A1A_1 B1B_1

\vdots

ANA_N BNB_N

出力

答えを出力せよ。

3
1 3
2 5
4 6
3

ありうる順序は (1,2,3),(2,1,3),(1,3,2)(1, 2, 3), (2, 1, 3), (1, 3, 2) です。

4
1 2
3 4
5 6
7 8
1

ありうる順序は (1,2,3,4)(1, 2, 3, 4) のみです。