| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 3 초 | 1024 MB | 1 | 0 | 0 | 0.000% |
W Bajtocji działa k agentów. Muszą oni odwiedzić wszystkie n miast kraju, ale żeby nie wzbudzać podejrzeń kontrwywiadu:
Sieć drogowa Bajtocji jest bardzo oszczędna i składa się z n−1 dróg. Z każdego miasta można dojść do każdego innego, być może przechodząc przez inne miasta.
Napisz program, który obliczy minimalną liczbę dni, w których agenci odwiedzą wszystkie miasta kraju. Zakładamy, że miasta, z których startują agenci, są już odwiedzone.
W pierwszym wierszu wejścia znajdują się dwie liczby całkowite n i k (2 ≤ n ≤ 500 000, 1 ≤ k ≤ n) oznaczające liczbę miast w Bajtocji i liczbę agentów. Miasta numerujemy liczbami od 1 do n.
W drugim wierszu wejścia znajduje się rosnący ciąg k liczb całkowitych z przedziału [1, n] oznaczający numery miast, które są początkowymi pozycjami agentów.
W kolejnych n − 1 wierszach znajduje się opis sieci drogowej Bajtocji. Każdy wiersz zawiera parę liczb całkowitych a, b (1 ≤ a, b ≤ n, a ≠ b) oznaczających, że istnieje droga łącząca miasta o numerach a i b.
Twój program powinien wypisać na wyjście jeden wiersz zawierający jedną liczbę całkowitą oznaczającą minimalną liczbę dni, po których agenci odwiedzą wszystkie miasta Bajtocji.
6 2 2 6 1 2 2 3 2 4 5 4 5 6
5
Wyjaśnienie przykładu: Pierwszy agent może odwiedzić miasta 2 → 1 → 2 → 3, co zajmie mu 3 dni, a drugi agent miasta 6 → 5 → 4, co zajmie mu 2 dni.