Trong một thành phố có \(n\) địa điểm, các địa điểm được đánh số thứ tự từ \(1\) đến \(n\).Từ một địa điểm bất kỳ có thể đi trực tiếp đến một trong các địa điểm còn lại hoặc thông qua các địa điểm khác bằng các đoạn đường hai chiều. Xuất phát từ một địa điểm, không tồn tại con đường nào có thể quay về chính nó. Trong các địa điểm trên, người ta muốn chọn địa điểm để đặt trung tâm hành chính. Khi đó, người ta xem độ rộng của thành phố chính là số lượng nhiều nhất các đoạn đường tính từ trung tâm hành chính đến các địa điểm còn lại.
Yêu cầu:
- Hãy lập trình tìm các địa điểm có thể đặt trung tâm hành chính sao cho độ rộng của thành phố là nhỏ nhất.
Dữ liệu vào:
- Dòng đầu tiên ghi số nguyên dương \(n (2 \le n \le 2 \times 10^4)\) là số các địa điểm trong thành phố.
- Trong \(n - 1\) dòng tiếp theo, mỗi dòng ghi \(2\) số nguyên dương \(x, y\) biểu diễn hai địa điểm \(x, y\) được nối trực tiếp với nhau bởi \(1\) đoạn đường.
Ràng buộc dữ liệu vào:
- 30% số điểm tương ứng với các test tồn tại địa điểm thứ \(i\) có đoạn đường nối trực tiếp đến địa điểm thứ \(i + 1 (1 \le i \le n - 1)\).
- 70% số điểm còn lại không ràng buộc gì thêm.
Kết quả:
- \(1\) dòng là số thứ tự các địa điểm có thể chọn làm trung tâm hành chính. Các địa điểm ghi theo thứ tự tăng dần.
Input 1
4
1 2
2 3
2 4
Output 1
2
Input 2
8
1 4
2 4
3 4
4 5
5 6
6 7
7 8
Output 2
5 6
- Với dữ liệu đầu tiên, điểm 2 là trung tâm hành chính phù hợp.
- Với dữ liệu thứ hai, hai địa điểm 5 và 6 đều là trung tâm hành chính phù hợp nhất.
Nhận xét