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
Коментарі