AT_abc276_c.[ABC276C] Previous Permutation

普及-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个 $ (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) $,用空格分隔,输出一行。

输入输出样例

  • 输入#1

    3
    3 1 2

    输出#1

    2 3 1
  • 输入#2

    10
    9 8 6 5 10 3 1 2 4 7

    输出#2

    9 8 6 5 10 2 7 4 3 1

说明/提示

限制条件

  • $ 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 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页