AT_abc430_g [ABC430G] Range Set Modifying Query
Description
$ N $ 個の集合 $ S_1, \ldots,S_N $ があります。最初、全ての集合は空集合です。
以下の形式のクエリが $ Q $ 個与えられるので順に処理してください。
- タイプ $ 1 $ :`1 L R x` の形式で与えられる。 $ L \leq i \leq R $ を満たす各 $ S_i $ に対し、 $ x $ を追加する。
- タイプ $ 2 $ :`2 L R x` の形式で与えられる。 $ L \leq i \leq R $ を満たす各 $ S_i $ に対し、 $ x $ を削除する。
- タイプ $ 3 $ :`3 L R` の形式で与えられる。 $ L \leq i \leq R $ を満たす $ S_i $ のうちの、要素数の最大値と、それを達成する集合の個数を求める。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ Q $ $ \mathrm{query}_1 $ $ \vdots $ $ \mathrm{query}_Q $
ただし、 $ \mathrm{query}_i $ は $ i $ 番目のクエリを表し、それぞれ問題文中に示した以下の形式で与えられる。
> $ 1 $ $ L $ $ R $ $ x $
> $ 2 $ $ L $ $ R $ $ x $
> $ 3 $ $ L $ $ R $
Output Format
タイプ $ 3 $ のクエリの個数を $ q $ として $ q $ 行出力せよ。
$ i $ 行目には、 $ i $ 個目のタイプ $ 3 $ のクエリにおいて、要素数の最大値を $ x $ 、それを達成する集合の個数を $ y $ として、 $ x,y $ を空白区切りで出力せよ。
Explanation/Hint
### Sample Explanation 1
- 最初 $ (S_1,S_2,S_3,S_4)=(\lbrace\rbrace,\lbrace\rbrace,\lbrace\rbrace,\lbrace\rbrace) $ です。
- $ 1 $ 番目のクエリにより $ S_1,S_2 $ に $ 10 $ が追加され、 $ (S_1,S_2,S_3,S_4)=(\lbrace 10\rbrace,\lbrace 10\rbrace,\lbrace\rbrace,\lbrace\rbrace) $ となります。
- $ 2 $ 番目のクエリにより $ S_2,S_3,S_4 $ に $ 20 $ が追加され、 $ (S_1,S_2,S_3,S_4)=(\lbrace 10\rbrace,\lbrace 10,20\rbrace,\lbrace 20\rbrace,\lbrace 20\rbrace) $ となります。
- $ 3 $ 番目のクエリにおいて、 $ S_1,S_2,S_3 $ のうち要素数が最大となるのは $ S_2 $ の $ 2 $ 個であるため、`2 1` を出力します。
- $ 4 $ 番目のクエリにより $ S_1,S_2 $ から $ 20 $ が削除され、 $ (S_1,S_2,S_3,S_4)=(\lbrace 10\rbrace,\lbrace 10\rbrace,\lbrace 20\rbrace,\lbrace 20\rbrace) $ となります。
- $ 5 $ 番目のクエリにより $ S_2,S_3 $ に $ 10 $ が追加され、 $ (S_1,S_2,S_3,S_4)=(\lbrace 10\rbrace,\lbrace 10\rbrace,\lbrace 10,20\rbrace,\lbrace 20\rbrace) $ となります。
- $ 6 $ 番目のクエリにおいて、 $ S_1,S_2 $ のうち要素数が最大となるのは $ S_1,S_2 $ の $ 1 $ 個であるため、`1 2` を出力します。
- $ 7 $ 番目のクエリにおいて、 $ S_1,S_2,S_3,S_4 $ のうち要素数が最大となるのは $ S_3 $ の $ 2 $ 個であるため、`2 1` を出力します。
### Constraints
- $ 1\leq N \leq 3\times 10^5 $
- $ 1\leq Q \leq 3\times 10^5 $
- 各クエリにおいて、 $ 1 \leq L \leq R \leq N $
- タイプ $ 1,2 $ のクエリにおいて、 $ 1 \leq x \leq 60 $
- 入力は全て整数