AT_abc276_c [ABC276C] Previous Permutation

题目描述

给定一个 $ (1,\ \dots,\ N) $ 的排列 $ P = (P_1,\ \dots,\ P_N) $。但保证 $ (P_1,\ \dots,\ P_N) \neq (1,\ \dots,\ N) $。 将 $ (1,\ \dots,\ N) $ 的所有排列按字典序从小到大排列,假设 $ P $ 是第 $ K $ 个。请你求出字典序第 $ K-1 $ 个排列。 **什么是排列?** $ (1,\ \dots,\ N) $ 的**排列**是指将 $ (1,\ \dots,\ N) $ 重新排列得到的数列。 **什么是字典序?** 对于长度为 $ N $ 的数列 $ A = (A_1,\ \dots,\ A_N),\ B = (B_1,\ \dots,\ B_N) $,若存在某个整数 $ 1 \leq i \leq N $,同时满足以下两个条件,则称 $ A $ **字典序严格小于** $ B $: - $ (A_{1},\ldots,A_{i-1}) = (B_1,\ldots,B_{i-1}) $ - $ A_i < B_i $

输入格式

输入从标准输入中给出,格式如下: > $ N $ $ P_1 $ $ \ldots $ $ P_N $

输出格式

请输出所求的排列 $ Q = (Q_1,\ \dots,\ Q_N) $,用空格分隔,输出一行。

说明/提示

## 限制条件 - $ 2 \leq N \leq 100 $ - $ 1 \leq P_i \leq N \quad (1 \leq i \leq N) $ - $ P_i \neq P_j \quad (i \neq j) $ - $ (P_1,\ \dots,\ P_N) \neq (1,\ \dots,\ N) $ - 输入的所有值均为整数 ## 样例解释 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 $ 个,所求的排列,即第 $ 5-1=4 $ 个排列为 $ (2,\ 3,\ 1) $。 由 ChatGPT 4.1 翻译