Дерево мінімальної глибини
Limits: 2 sec., 256 MiB
Задано кореневе дерево з \(n\) вершинами з коренем у вершині 1.
Є \(m\) дозволених операцій, що задані парами числами \((a_i, b_i)\). Операція \((u, v)\) означає перепідвісити піддерево вершини \(v\) (включно із самою вершиною \(v\)) до вершини \(u\). Забороняється використовувати операцію \((u, v)\), якщо вершина \(u\) є в піддереві вершини \(v\).
Виконавши будь-яку кількість операцій у довільному порядку, яку мінімальну глибину дерева можна отримати?
Input
У першому рядку задано ціле число \(n\) — кількість вершин у дереві.
У наступних \(n - 1\) рядках записано по два цілих числа \(u_i\), \(v_i\) — кінці ребер дерева.
У наступному рядку задано ціле число \(m\) — кількість дозволених операцій.
У наступних \(m\) рядках задано пари чисел \(a_i\), \(b_i\) — дозволені операції.
Output
У єдиному рядку виведіть ціле число — мінімальну глибину дерева.
Constraints
\(1 \le n, m \le 3 \cdot 10^5\),
\(1 \le u_i, v_i, a_i, b_i \le n\).
Samples
Input (stdin) | Output (stdout) |
---|---|
8 1 5 1 2 2 3 3 4 5 6 6 8 4 7 2 1 4 8 7 | 3 |
Notes
Глибина дерева — це довжина найдовшого шляху від кореня до будь-якої іншої вершини.
Submit a solution
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|