Сортування від 0 до n - 1#8636

Сортування від 0 до n - 1

1 секунда
128 мегабайтів
Середня

Задано послідовність чисел a_0, a_1, \dots, a_{n-1}, що складається з попарно різних елементів, кожен з яких належить проміжку [0; n - 1].

Обміном будемо називати операцію (i, j)~(0 \le i, j \le n - 1), яка міняє місцями значення a_i та a_j.

Відсортуйте послідовність у порядку зростання, використовуючи мінімальну кількість обмінів. Виведіть усі виконані обміни.

Вхідні дані

Перший рядок містить натуральне число n~(n \le 10^6).

Другий рядок містить різних чисел з проміжку [0; n - 1].

Вихідні дані

У першому рядку виведіть мінімальну кількість обмінів .

У наступних рядках виведіть усі виконані обміни у вигляді пар .

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading