AT_tupc2022_a Sum Sort
题目描述
给定一个 $(1, 2, \dots, N)$ 的排列 $P = (P_1, P_2, \dots, P_N)$。你可以任意次数地进行以下操作:
- 选择满足 $P_i + P_j \leq K$ 的整数对 $(i, j)$($1 \leq i < j \leq N$),交换 $P_i$ 和 $P_j$ 的值。
你能否将 $P$ 排成升序?
输入格式
输入以以下格式从标准输入读入。
> $N\ K\ P_1\ P_2\ \cdots\ P_N$
输出格式
如果能够将排列排成升序,输出 `Yes`,否则输出 `No`。
说明/提示
### 样例解释 1
只需交换 $P_1$ 和 $P_3$ 即可。因为 $P_1 + P_3 = 3 + 1 \leq 4$,所以可以进行此交换。
### 样例解释 2
例如 $P_3$ 和 $P_4$ 无法交换。不论采取何种操作,都无法将 $P$ 排成升序。
### 约束条件
- $2 \leq N \leq 2 \times 10^5$
- $2 \leq K \leq 2N$
- $(P_1, P_2, \cdots, P_N)$ 是 $(1,2,\cdots,N)$ 的一个排列
- 所有输入均为整数。
由 ChatGPT 5 翻译