Дерево мінімальної глибини
Limits: 2 sec., 256 MiB
Задано кореневе дерево з n вершинами з коренем у вершині 1.
Є m дозволених операцій, що задані парами числами (ai,bi). Операція (u,v) означає перепідвісити піддерево вершини v (включно із самою вершиною v) до вершини u. Забороняється використовувати операцію (u,v), якщо вершина u є в піддереві вершини v.
Виконавши будь-яку кількість операцій у довільному порядку, яку мінімальну глибину дерева можна отримати?
Input
У першому рядку задано ціле число n — кількість вершин у дереві.
У наступних n−1 рядках записано по два цілих числа ui, vi — кінці ребер дерева.
У наступному рядку задано ціле число m — кількість дозволених операцій.
У наступних m рядках задано пари чисел ai, bi — дозволені операції.
Output
У єдиному рядку виведіть ціле число — мінімальну глибину дерева.
Constraints
1≤n,m≤3⋅105,
1≤ui,vi,ai,bi≤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
Глибина дерева — це довжина найдовшого шляху від кореня до будь-якої іншої вершини.