#4323. Swap Many Times

0

Swap Many Times

Swap Many Times

题目描述

对于一个大于或等于 22 的整数 NN,存在 N(N−1)2\frac{N(N - 1)}{2} 个整数对 (x,y)(x, y) 满足 1≤x<y≤N1 \leq x \lt y \leq N。 考虑按字典序升序排列的这些对的序列。 令 (x1,y1),…,(xR−L+1,yR−L+1)(x_1, y_1), \dots, (x_{R - L + 1}, y_{R - L + 1}) 分别为该序列的第 LL 项、第 (L+1)(L+1) 项、…\ldots、第 RR 项。在序列 A=(1,…,N)A = (1, \dots, N) 上,我们按以下顺序对 i=1,…,R−L+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

输入格式

输入按以下格式由标准输入给出: NN LL RR

输出格式

在一行中按空格分隔输出所有操作结束后的 AA 的各项。

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

提示

2≤N≤2×1052 \leq N \leq 2 \times 10^5 1≤L≤R≤N(N−1)21 \leq L \leq R \leq \frac{N(N-1)}{2} 输入中的所有数值均为整数。考虑所有满足 1≤x<y≤N1 \leq x \lt y \leq N 的整数对按字典序升序排列的序列。它的第 33、44、55、66 项分别是 (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)$

标签: AtCoder|abc253G

来源

AtCoder|abc253G