10852. Гра з обмінами
Вася та Петя грають у захоплюючу гру. Вася виписав поспіль числа від 1 до \(N\). А Петя виписав \(P\) пар чисел (\(A_i, B_i\)).
Тепер Вася перетворює наявну послідовність чисел – він змінює місцями числа у цій послідовності. Якщо деяка пара чисел (\(A_i, B_i\)) виписана Петею, то Вася має право будь-якої миті взяти числа з послідовності, що стоять на місцях \(A_i\) і \(B_i\) і поміняти їх місцями.
Наприклад, якщо \(N = 5\). Тоді спочатку Васею виписано послідовність
1 2 3 4 5
Нехай Петя написав дві пари чисел: (1,2) та (2,5). Тоді Вася в будь-який момент може змінювати числа, що стоять на 1 і 2 місцях, або числа, що стоять на 2 і 5 місцях.
Наприклад, він може послідовно отримати такі послідовності:
- 2 1 3 4 5 (змінивши числа на 1 та 2 місцях)
- 2 5 3 4 1 (змінивши числа на 2 та 5 місцях)
- 5 2 3 4 1 (змінивши числа на 1 та 2 місцях ).
Петі не показуються проміжні послідовності, а виписується лише отримана на останньому етапі.
Від Петі вимагається перевірити, чи міг Вася отримати таку послідовність не порушуючи правил гри, і якщо міг, то вказати, внаслідок якої послідовності обмінів (при цьому не потрібно, щоб кількість обмінів була мінімально можливою).
Напишіть програму, яка допоможе Петі впоратися з цим завданням.
Формат вхідних даних
Спочатку записано число \(N\) (\(1≤N≤100\)) – кількість чисел у послідовності. Далі йде \(N\) чисел – послідовність, отримана Васею (у послідовності кожне із чисел від 1 до \(N\) зустрічається рівно один раз).
Далі йде число \(P\) (\(0≤P≤10000\)) – кількість пар чисел, виписаних Петею.
Далі записано \(P\) пар чисел (кожне число пари з діапазону від 1 до \(N\)).
Формат вихідних даних
У перший рядок виведіть повідомлення YES (якщо така послідовність могла бути чесно отримана Васею) та NO (якщо таку послідовність Вася не міг отримати, не порушуючи правил гри).
Якщо така послідовність могла бути отримана, далі виведіть спосіб її отримання (якщо варіантів кілька, виведіть будь-який з них). Спочатку виведіть число \(K\) - кількість операцій обміну (вона не повинна перевищувати 100000), а потім \(K\) пар чисел, що задають номери місць, на яких стоять елементи, що обмінюються (числа в парі можуть бути видані в будь-якому порядку).
Гарантується, що якщо рішення існує, існує рішення з числом обмінів, що не перевищує 100000.
Приклад вхідних даних
5
5 2 3 4 1
2
1 2
2 5
Приклад вихідних даних
YES
3
1 2
2 5
1 2
Приклад вхідних даних
5
2 3 4 5 1
2
1 2
2 5
Приклад вихідних даних
NO
Коментарі