atcoder#ABC253G. [ABC253G] Swap Many Times

[ABC253G] Swap Many Times

题目描述

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

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

  • Axi A_{x_i} Ayi A_{y_i} を入れ替える

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

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

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

输入格式

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

N N L L R R

输出格式

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

题目大意

题意

你有一个长度为 nn 的序列 aa,初始时,对于每一个 i(1in)i(1\le i\le n),满足 ai=ia_i=i

然后你可以根据 nn 构造出一个长度为 n(n1)2\frac{n(n-1)}{2} 的二元组序列,包含满足 1l<rn1\le l<r\le n 的所有二元组 (l,r)(l,r)。并且将得到的序列以 ll 为第一关键字,rr 为第二关键字由小到大排序。

例如,当 n=4n=4,时,二元组序列为:

(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)

定义一个二元组 (l,r)(l,r) 对应的操作为交换 ala_lara_r

给出一个 LL 和一个 RR,要求你求出在执行完第 LL 个到第 RR 个二元组所对应的操作后的序列。

样例解释

  • 样例 1:

n=5n=5 时,第 33 个到第 66 个二元组为:

(1,4),(1,5),(2,3),(2,4)(1,4),(1,5),(2,3),(2,4)

所以执行完操作后原序列变为:

1,2,3,4,55,1,2,3,41,2,3,4,5 \longrightarrow 5,1,2,3,4
5 3 6
5 1 2 3 4
10 12 36
1 10 9 8 7 4 3 2 5 6

提示

制約

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

Sample Explanation 1

1  x < y  N 1\ \leq\ x\ \lt\ y\ \leq\ N を満たす整数の組を辞書順で小さい順に並べたもののうち 3, 4, 5, 6 3,\ 4,\ 5,\ 6 番目のものはそれぞれ (1, 4), (1, 5), (2, 3), (2, 4) (1,\ 4),\ (1,\ 5),\ (2,\ 3),\ (2,\ 4) です。 これらについて順に操作を行うと、A A は次のように変化します。 $ (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) $