#AT2367. C - Previous Permutation
C - Previous Permutation
当前没有测试数据。
C - 前一个排列
得分:$300$ 分
问题描述
给定一个排列 $P = (P_1, \dots, P_N)$,其中 $(P_1, \dots, P_N) \neq (1, \dots, N)$。
假设 $P$ 是所有 $(1, \dots, N)$ 的排列中第 $K$ 小的排列。找到第 $(K-1)$ 小的排列。
什么是排列?
一个 $(1, \dots, N)$ 的排列是 $(1, \dots, N)$ 的一个序列。
什么是字典序?
对于长度为 $N$ 的序列 $A = (A_1, \dots, A_N)$ 和 $B = (B_1, \dots, B_N)$,$A$ 被称为 严格字典序小于 $B$ 如果且仅如果存在一个整数 $1 \leq i \leq N$,满足以下两个条件。
- $(A_{1},\ldots,A_{i-1}) = (B_1,\ldots,B_{i-1}).$
- $A_i < B_i$。
约束
- $2 \leq N \leq 100$
- $1 \leq P_i \leq N \, (1 \leq i \leq N)$
- $P_i \neq P_j \, (i \neq j)$
- $(P_1, \dots, P_N) \neq (1, \dots, N)$
- 输入中所有的值都是整数。
输入
输入以以下格式从标准输入中给出:
输出
设 $Q = (Q_1, \dots, Q_N)$ 是要求的排列。以这个顺序,用一个空格隔开,将 $Q_1, \dots, Q_N$ 打印在单行中。
3
3 1 2
2 3 1
以下是 $(1, 2, 3)$ 的所有排列按照字典序升序排列的结果。
- $(1, 2, 3)$
- $(1, 3, 2)$
- $(2, 1, 3)$
- $(2, 3, 1)$
- $(3, 1, 2)$
- $(3, 2, 1)$
因此,$P = (3, 1, 2)$ 是第五小的排列,所以要求的排列,即第四小的排列 $(5 - 1 = 4)$,是 $(2, 3, 1)$。
10
9 8 6 5 10 3 1 2 4 7
9 8 6 5 10 2 7 4 3 1