Дерево мінімальної глибини
Обмеження: 2 сек., 256 МіБ
Задано кореневе дерево з \(n\) вершинами з коренем у вершині 1.
Є \(m\) дозволених операцій, що задані парами числами \((a_i, b_i)\). Операція \((u, v)\) означає перепідвісити піддерево вершини \(v\) (включно із самою вершиною \(v\)) до вершини \(u\). Забороняється використовувати операцію \((u, v)\), якщо вершина \(u\) є в піддереві вершини \(v\).
Виконавши будь-яку кількість операцій у довільному порядку, яку мінімальну глибину дерева можна отримати?
Вхідні дані
У першому рядку задано ціле число \(n\) — кількість вершин у дереві.
У наступних \(n - 1\) рядках записано по два цілих числа \(u_i\), \(v_i\) — кінці ребер дерева.
У наступному рядку задано ціле число \(m\) — кількість дозволених операцій.
У наступних \(m\) рядках задано пари чисел \(a_i\), \(b_i\) — дозволені операції.
Вихідні дані
У єдиному рядку виведіть ціле число — мінімальну глибину дерева.
Обмеження
\(1 \le n, m \le 3 \cdot 10^5\),
\(1 \le u_i, v_i, a_i, b_i \le n\).
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
8 1 5 1 2 2 3 3 4 5 6 6 8 4 7 2 1 4 8 7 | 3 |
Примітки
Глибина дерева — це довжина найдовшого шляху від кореня до будь-якої іншої вершини.
Надіслати розв'язок
Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
---|
Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
---|