Chọn ĐTQG Lâm Đồng 2025 - Kinh doanh cà phê

Xem dạng PDF

Gửi bài giải

Điểm: 50,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Tỉnh Alpha có ~n~ phường được đánh số từ ~1~ đến ~n~. Có ~n-1~ con đường hai chiều, con đường thứ ~i~ nối liền hai phường ~u_i~ và ~v_i~. Một đường đi từ ~s~ đến ~t~ là một dãy các phường ~s, v_1, v_2, \dots, v_k, t~ sao cho hai phường liên tiếp trong dãy đều được nối bởi một con đường nào đó và độ dài của đường đi là ~k+1~. Khoảng cách giữa hai phường ~u~ và ~v~ là độ dài của đường đi ngắn nhất từ ~u~ đến ~v~. Dữ liệu vào đảm bảo giữa hai phường bất kỳ đều có đường đi đến nhau.

Tập đoàn kinh doanh cà phê AiLegend đã mở ~m~ chi nhánh, chi nhánh thứ ~i~ nằm ở phường ~p_i~. Do nhu cầu uống cà phê tăng cao của giới trẻ hiện nay, CEO tập đoàn AiLegend quyết định mở thêm đúng một chi nhánh nữa (hiển nhiên là ở một phường nào đó chưa có chi nhánh).

CEO tập đoàn AiLegend mong muốn rằng khoảng cách lớn nhất từ một phường bất kỳ chưa có chi nhánh đến một phường đã có chi nhánh là nhỏ nhất. Nói cách khác, gọi ~d_u~ là khoảng cách nhỏ nhất từ phường chưa có chi nhánh ~u~ đến một phường đã có chi nhánh. Gọi ~s = \max(d_u)~ với ~u = 1, 2, \dots, n~. CEO mong muốn mở thêm một chi nhánh sao cho giá trị của ~s~ là nhỏ nhất.

Yêu cầu: Bạn hãy giúp CEO tập đoàn AiLegend giải bài toán trên?

Input

  • Dòng đầu tiên chứa hai số nguyên ~n~ và ~m~, lần lượt là số phường của tỉnh Alpha và số chi nhánh của tập đoàn AiLegend ~(1 \le n \le 300000~ và ~0 \le m \le n-1)~;

  • Dòng thứ hai chứa ~m~ số nguyên ~p_1, p_2, \dots, p_m~ ~(1 \le p_i \le n)~, là các phường đã có chi nhánh;

  • ~n-1~ dòng tiếp theo, mỗi dòng chứa hai số nguyên ~u~ và ~v~ ~(1 \le u, v \le n)~, là con đường hai chiều trực tiếp nối phường ~u~ và phường ~v~.

Output

Gồm một dòng là giá trị nhỏ nhất của ~s~ sau khi tập đoàn AiLegend thêm một chi nhánh.

Scoring

Subtask Điểm Ràng buộc
1 ~20\%~ ~1 \le n \le 3000~
2 ~20\%~ ~1 \le n \le 300000, m = 0~
3 ~30\%~ ~1 \le n \le 300000, m \le 10~
4 ~30\%~ Không có ràng buộc gì thêm

Sample Input 1

7 1
5
1 3
1 5
1 7
3 4
7 2
7 6

Sample Output 1

2

Sample Input 2

7 2
5 4
1 3
1 5
1 7
3 4
7 2
7 6

Sample Output 2

1

Notes

  • Ở ví dụ 1, chọn phường ~1~ để mở thêm chi nhánh.

  • Ở ví dụ 2, chọn phường ~7~ để mở thêm chi nhánh.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.