Дві перестановки кульок
Limits: 2 sec., 256 MiB
Зеник любить грати з різнокольоровими кульками.
В нього є 2 рядки кульок. В кожному рядку по n кульок, на яких написано числа між 1 та n так, що числа у кожному рядку утворюють перестановку. В першому рядку всі кульки сині, в другому жовті.
За 1 хід можна вибрати одну кульку в першому рядку, одну кульку в другому рядку та поміняти їх місцями. Допоможіть Зенику за не більше ніж n+1 хід отримати ситуацію в якій:
в першому рядку всі кульки сині
в другому рядку всі кульки жовті
перестановки на кульках в першому і другому рядку однакові
Input
В першому рядку задано одне ціле число n — кількість кульок в кожному з рядків.
У другому рядку задано n натуральних чисел p1,p2,…,pn — перестановка синіх кульок.
У третьому рядку задано n натуральних чисел q1,q2,…,qn — перестановка жовтих кульок.
Output
В першому рядку виведіть одне число k — кількість ходів, яку ви хочете зробити. В кожному з наступних k рядків виведіть два числа ai та bi, які означатимуть зміну місцями кульки на позиції ai в першому рядку і кульки на позиції bi в другому рядку. k не повинно перевищувати n+1.
Гарантується, що при заданих обмеженнях відповідь завжди існує. Якщо існує декілька можливих послідовностей ходів, виведіть будь-яку.
Constraints
1≤n≤2⋅105,
1≤pi,qi≤n,
Масиви [p1,p2,…,pn] і [q1,q2,…,qn] є перестановками.
Samples
Input (stdin) | Output (stdout) |
---|---|
6 2 3 4 1 6 5 6 3 1 2 4 5 | 7 3 4 5 4 4 4 3 4 1 1 1 4 1 1 |
Notes
Пояснення до прикладу (символи +
та -
відповідають синім та жовтим кулькам):
Вхідні перестановки: [2+3+4+1+6+5+] та [6−3−1−2−4−5−];
Хід 1 a1=3,b1=4: [2+3+2−1+6+5+] та [6−3−1−4+4−5−];
Хід 2 a2=5,b2=4: [2+3+2−1+4+5+] та [6−3−1−6+4−5−];
Хід 3 a3=4,b3=4: [2+3+2−6+4+5+] та [6−3−1−1+4−5−];
Хід 4 a4=3,b4=4: [2+3+1+6+4+5+] та [6−3−1−2−4−5−];
Хід 5 a5=1,b5=1: [6−3+1+6+4+5+] та [2+3−1−2−4−5−];
Хід 6 a6=1,b6=4: [2−3+1+6+4+5+] та [2+3−1−6−4−5−];
Хід 7 a7=1,b7=1: [2+3+1+6+4+5+] та [2−3−1−6−4−5−].