G. Кольорові книги#8757

G. Кольорові книги

1 секунда
64 мегабайти
Дуже складна

Сьогодні Козак Вус знайшов поличку книг. Усього на поличці було книг, розташованих у ряд. На кожній книзі було написане одне ціле число a_i. Усі ці числа різні з проміжку . Іншими словами, — перестановка. Також кожна книга має свій колір, колір -ої книги c_i.

Козак хоче навести лад на поличці, для цього потрібно, щоб книги йшли в порядку зростання чисел, записаних на них, тобто книга іде першою, наступна і так далі. За одну операцію він може поміняти місцями будь-які дві книги різного кольору. Допоможіть Вусу впоратись з цією задачею за мінімальну кількість операцій. Гарантується, що це можливо зробити.

Вхідні дані

Перший рядок містить одне ціле число (1 \leq n \leq 10^5) — кількість книг.

Другий рядок містить цілих чисел a_1, a_2, \ldots, a_n (1 \leq a_i \leq n) — числа, записані на книгах.

Гарантується, що всі числа різні.

Третій рядок містить цілих чисел c_1, c_2, \ldots, c_n (1 \leq c_i \leq n) — кольори книг.

Гарантується, що рішення завжди існує.

Вихідні дані

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

У наступних рядках виведіть по два цілі числа — позиції книг, які потрібно поміняти місцями.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Оцінювання

  1. (до 50 балів) n \leq 1000; припустимо, що — мінімальна кількість операцій, які потрібно зробити, щоб відсортувати книги в певному тесті, а — кількість операцій, які ви використали.Тоді результат за цей тест буде рівний:

, якщо k = m

10 + \lfloor 30 - 30 \cdot (k - m)/(3n - m) \rfloor, якщо m < k \leq 3n

, якщо k > 3n.

Ваша кількість балів за цей блок буде рівною мінімуму з результатів у всіх тестах з блоку.

  1. (10 балів) 1000 < n \leq 10^5, усі кольори різні.

  2. (40 балів) без додаткових обмежень.