#AT2187. G - Swap Many Times

G - Swap Many Times

当前没有测试数据。

G - 交换多次

得分:$600$ 点

问题描述

对于一个大于等于2的整数$N$,存在$\frac{N(N - 1)}{2}$个整数对$(x, y)$,满足$1 \leq x \lt y \leq N$。

考虑将这些整数对按照字典序递增的顺序排序。设它们的$L$-th, $(L+1)$-th, $\ldots$到$R$-th的元素分别是$(x_1, y_1), \dots, (x_{R - L + 1}, y_{R - L + 1})$。在序列$A = (1, \dots, N)$上,我们按照以下顺序执行操作,对于每个$i = 1, \dots, R-L+1$:

  • 交换$A_{x_i}$和$A_{y_i}$。

找到所有操作执行完毕之后的最终$A$序列。

我们说,在字典序中,$(a, b)$小于$(c, d)$当且仅当以下条件之一满足:

  • $a \lt c$
  • $a = c$且$b \lt d$

约束

  • $2 \leq N \leq 2 \times 10^5$
  • $1 \leq L \leq R \leq \frac{N(N-1)}{2}$
  • 输入中的所有值都是整数。

输入

从标准输入中按以下格式给出:

NN LL RR

输出

在一行中按照空格分隔打印出所有操作执行完毕后的$A$序列。


5 3 6
5 1 2 3 4

考虑将整数对按照$1 \leq x \lt y \leq N$的字典序递增的顺序排序。它们的第3、4、5、6个元素分别为$(1, 4), (1, 5), (2, 3), (2, 4)$。

对应这些整数对,$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)$


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