11968. Попередня перестановка


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Вам надано перестановку \(P=(P_1 ​ ,…,P_N ​ )\) з (\(1,…,N\)), де (\(P_1 ​ ,…,P_N ​) \neq (1,…,N)\).

Припустимо, що \(P\) є \(K\)-м лексикографічно найменшим серед усіх перестановок \((1…,N)\).

Знайдіть \((K−1)\)-ту лексикографічно найменшу перестановку.

Обмеження

  • \(2≤N≤100\)
  • \(1≤P_i ≤N\)\((1≤i≤N)\)
  • \(P_i ​ \neq P_j\) ​ \((I \neq j)\)
  • \((P_1 ​ ,…,P_N ​ ) \neq (1,… ,N)\)
  • Усі значення у вхідних даних є цілими числами.

Формат вхідних даних

Перший рядок містить ціле число \(N\).

Наступний рядок містить цілі числа \(P_i\).

Формат вихідних даних

Нехай \(Q=(Q_1 ,…,Q_N )\) — шукана перестановка. Виведіть \(Q_1 ​ ,…,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

Коментарі

Ще немає коментарів.