Mạng tốc độ cao
Đề bài
Mô tả
Arkady đang xây dựng một mạng trao đổi Internet tốc độ cao. Mạng gồm nút được nối bởi số dây ít nhất có thể sao cho toàn bộ mạng liên thông (mỗi dây nối trực tiếp hai nút). Có đúng nút được chọn làm nút thoát: mỗi nút thoát phải có bậc đúng bằng (nối với đúng một nút khác); tất cả các nút còn lại phải có bậc ít nhất để tăng tính ổn định của hệ thống.
Vì mạng liên thông và có cạnh nên nó là một cây. Yêu cầu: hãy xây dựng cây sao cho khoảng cách lớn nhất giữa hai nút thoát bất kỳ là nhỏ nhất có thể. Khoảng cách giữa hai nút là số dây trên đường đi đơn nối chúng.
Dữ liệu vào
Một dòng duy nhất chứa hai số nguyên và .
Dữ liệu ra
- Dòng đầu in một số nguyên — khoảng cách nhỏ nhất có thể giữa hai nút thoát xa nhau nhất.
- Trong dòng tiếp theo, mỗi dòng in hai số nguyên là chỉ số hai đầu của một dây. Các nút được đánh số từ đến . Mỗi cạnh in đúng một lần, thứ tự cạnh và thứ tự hai đầu là tuỳ ý. Các nút thoát có thể có chỉ số bất kỳ.
Nếu có nhiều cách xây dựng tối ưu, in ra bất kỳ cách nào.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 2 | 2 1 2 1 3 |
Cây duy nhất là đường đi , hai nút thoát là và , khoảng cách giữa chúng là . |
| 5 3 | 3 1 2 2 3 1 4 1 5 |
Cây có ba nút thoát ; khoảng cách lớn nhất giữa hai nút thoát bất kỳ là (giữa và , hoặc giữa và ). |
Bình luận