atcoder#ABC253G. [ABC253G] Swap Many Times

[ABC253G] Swap Many Times

配点 : 600600

問題文

22 以上の整数 NN に対し、1x<yN1 \leq x \lt y \leq N を満たす整数の組 (x,y)(x, y)N(N1)2\frac{N(N - 1)}{2} 個あります。

これらを辞書順で小さい順に並べたもののうち LL 番目、L+1L+1 番目、\ldotsRR 番目のものをそれぞれ (x1,y1),,(xRL+1,yRL+1)(x_1, y_1), \dots, (x_{R - L + 1}, y_{R - L + 1}) とおきます。数列 A=(1,,N)A = (1, \dots, N) に対し、i=1,,RL+1i = 1, \dots, R-L+1 の順に以下の操作を行います。

  • AxiA_{x_i}AyiA_{y_i} を入れ替える

操作後の AA を求めてください。

なお、(a,b)(a, b)(c,d)(c, d) よりも辞書順で小さいとは、以下のいずれかが成り立つことをいいます。

  • a<ca \lt c
  • a=ca = c かつ b<db \lt d

制約

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 1LRN(N1)21 \leq L \leq R \leq \frac{N(N-1)}{2}
  • 入力は全て整数

入力

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

NN LL RR

出力

操作後の AA の各項を空白区切りで一行に出力せよ。

5 3 6
5 1 2 3 4

1x<yN1 \leq x \lt y \leq N を満たす整数の組を辞書順で小さい順に並べたもののうち 3,4,5,63, 4, 5, 6 番目のものはそれぞれ (1,4),(1,5),(2,3),(2,4)(1, 4), (1, 5), (2, 3), (2, 4) です。

これらについて順に操作を行うと、AA は次のように変化します。

$(1, 2, 3, 4, 5) \rightarrow (4, 2, 3, 1, 5) \rightarrow (5, 2, 3, 1, 4) \rightarrow (5, 3, 2, 1, 4) \rightarrow (5, 1, 2, 3, 4)$

10 12 36
1 10 9 8 7 4 3 2 5 6