#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)$
  • 输入中所有的值都是整数。

输入

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

NN

P1P_1 \ldots PNP_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