#abc256d. [abc256_d]Union of Interval

[abc256_d]Union of Interval

問題文

実数 L,RL,R に対して、LL 以上 RR 未満からなる実数の集合を \[L,R)\[L,R) と表します。このような形で表される集合を右半開区間といいます。

NN 個の右半開区間 \[Li,Ri)\[L_i,R_i) が与えられます。これらの和集合を SS とします。SS を最小の個数の右半開区間の和集合として表してください。

制約

  • 1leqNleq2times1051 \\leq N \\leq 2\\times 10^5
  • 1leqLiltRileq2times1051 \\leq L_i \\lt R_i \\leq 2\\times 10^5
  • 入力に含まれる値は全て整数である

入力

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

NN L1L_1 R1R_1 vdots\\vdots LNL_N RNR_N

出力

SS が最小で kk 個の右半開区間の和集合で表せるとする。そのような kk 個の右半開区間 \[Xi,Yi)\[X_i,Y_i)XiX_i の昇順で以下のように kk 行出力せよ。

X1X_1 Y1Y_1 vdots\\vdots XkX_k YkY_k


入力例 1

3
10 20
20 30
40 50

出力例 1

10 30
40 50

33 つの右半開区間 \[10,20),\[20,30),\[40,50)\[10,20),\[20,30),\[40,50) の和集合は 22 つの右半開区間 \[10,30),\[40,50)\[10,30),\[40,50) の和集合と等しくなります。


入力例 2

3
10 40
30 60
20 50

出力例 2

10 60

33 つの右半開区間 \[10,40),\[30,60),\[20,50)\[10,40),\[30,60),\[20,50) の和集合は 11 つの右半開区間 \[10,60)\[10,60) と等しくなります。