K. *【STL:prev_permutation】[ABC276C] Previous Permutation

    传统题 2000ms 1024MiB

*【STL:prev_permutation】[ABC276C] Previous Permutation

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

AT_abc276_c [ABC276C] Previous Permutation

题目描述

给定一个 (1, , N) (1,\ \dots,\ N) 的排列 P=(P1, , PN) P = (P_1,\ \dots,\ P_N) 。但保证 (P1, , PN)(1, , N) (P_1,\ \dots,\ P_N) \neq (1,\ \dots,\ N)

(1, , N) (1,\ \dots,\ N) 的所有排列按字典序从小到大排列,假设 P P 是第 K K 个。请你求出字典序第 K1 K-1 个排列。

什么是排列?
(1, , N) (1,\ \dots,\ N) 排列是指将 (1, , N) (1,\ \dots,\ N) 重新排列得到的数列。

什么是字典序?
对于长度为 N N 的数列 $A = (A_1,\ \dots,\ A_N),\ B = (B_1,\ \dots,\ B_N)$,若存在某个整数 1iN 1 \leq i \leq N ,同时满足以下两个条件,则称 A A 字典序严格小于 B B

  • (A1,,Ai1)=(B1,,Bi1) (A_{1},\ldots,A_{i-1}) = (B_1,\ldots,B_{i-1})
  • Ai<Bi A_i < B_i

输入格式

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

N N P1 P_1 \ldots PN P_N

输出格式

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

样例 1

输入

3
3 1 2

输出

2 3 1

样例 2

输入

10
9 8 6 5 10 3 1 2 4 7

输出

9 8 6 5 10 2 7 4 3 1

说明/提示

限制条件

  • 2N100 2 \leq N \leq 100
  • 1PiN(1iN) 1 \leq P_i \leq N \quad (1 \leq i \leq N)
  • PiPj(ij) P_i \neq P_j \quad (i \neq j)
  • (P1, , PN)(1, , N) (P_1,\ \dots,\ P_N) \neq (1,\ \dots,\ N)
  • 输入的所有值均为整数

样例解释 1

(1, 2, 3) (1,\ 2,\ 3) 的所有排列按字典序从小到大排列如下:

  • (1, 2, 3) (1,\ 2,\ 3)
  • (1, 3, 2) (1,\ 3,\ 2)
  • (2, 1, 3) (2,\ 1,\ 3)
  • (2, 3, 1) (2,\ 3,\ 1)
  • (3, 1, 2) (3,\ 1,\ 2)
  • (3, 2, 1) (3,\ 2,\ 1)

因此 P=(3, 1, 2) P = (3,\ 1,\ 2) 是第 5 5 个,所求的排列,即第 51=4 5-1=4 个排列为 (2, 3, 1) (2,\ 3,\ 1)

由 ChatGPT 4.1 翻译

新初二 20260716上午(STL,11:00考察)2

未参加
状态
已结束
规则
XCPC
题目
17
开始于
2026-7-16 10:40
结束于
2026-7-16 11:40
持续时间
1 小时
主持人
参赛人数
19