Цікавий білок
Обмеження: 2 сек., 512 МіБ
Як відомо, білок є найважливішим компонентом людського тіла, він є будівельним матеріалом кожної клітини. Зазвичай їх поділяють на два класи — прості і складні. Але мало хто знає, що є ще цікаві і нецікаві білки.
Білок можна представити у вигляді множини, що складається з \(n\) вузлів. Деякі пари вузлів з’єднуються між собою амінокислотами. Також білок є зв’язним, тобто існує послідовність сусідніх по вузлах з’єднань між будь-якими двома різними вузлами білка. Кільцем у білку називається така послідовність з не менше ніж трьох вузлів, у якій сусідні вузли пов’язані амінокислотами, і кінці цієї послідовності також є кінцями однієї з амінокислот.
Білок називається цікавим, якщо будь-який вузол належить не більше ніж одному циклу. Приклад цікавого білка представлений на малюнку нижче:
Щоб допомогти краще вивчити природу цікавих білків, вас попросили відповісти на кілька запитів виду: «Чи буде вихідний білок цікавим, якщо додати до нього з’єднання між вузлами \(u_i\) і \(v_i\)?».
Вхідні дані
У першому рядку задано два цілих числа \(n\), \(m\) — кількість вузлів у білку й кількість з’єднань між ними.
Кожен із наступних \(m\) рядків містить по два цілих числа \(u_i\) та \(v_i\), які означають, що вузли \(u_i\) та \(v_i\) з’єднані.
Наступний рядок містить ціле число \(q\) — кількість запитів.
Кожен із наступних \(q\) рядків містить по два цілих числа \(a_j\) і \(b_j\) — вершини, які потрібно з’єднати для отримання графа в \(j\)-му запиті.
Вихідні дані
Для кожного запиту в окремому рядку виведіть Yes, якщо
при додаванні ребра між \(a_j\) і \(b_j\) для \(j\)-го запиту білок залишається цікавим, і
No інакше.
Обмеження
\(3 \le n \le 2 \cdot 10^5\),
\(n - 1 \le m \le 2 \cdot 10^5\),
\(0 \le q \le 2 \cdot 10^5\),
\(1 \le u_i, v_i, a_j, b_j \le n\),
дані описують коректне дерево,
для кожного запиту між вузлами \(a_j\) і \(b_j\) не існує з’єднання.
Приклади
| Вхідні дані (stdin) | Вихідні дані (stdout) |
|---|---|
| 8 8 1 2 1 3 2 4 2 5 4 6 4 7 6 8 6 7 5 3 5 2 3 5 6 1 4 7 8 | Yes Yes No No No |
Надіслати розв'язок
| Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
|---|
| Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
|---|