Gấp cây
Đề bài
Mô tả
Cho một cây gồm đỉnh. Ta được phép thực hiện thao tác sau nhiều lần:
Chọn một đỉnh và hai đường đi có cùng độ dài, cùng xuất phát từ và chỉ chung nhau đúng đỉnh : Ngoài ra, các đỉnh không được có đỉnh kề nào khác ngoài các đỉnh liền kề trên chính đường đi tương ứng của chúng. Khi đó ta có thể gộp một đường đi vào đường đi kia, tức là các đỉnh bị xóa đi (hai đường đi trùng khít lên nhau).
Hãy xác định xem có thể biến cây đã cho thành một đường đi đơn (một chuỗi đỉnh nối tiếp) bằng một dãy các thao tác như trên hay không. Nếu được, hãy tìm số cạnh nhỏ nhất của đường đi thu được.
Dữ liệu vào
- Dòng đầu chứa số nguyên là số đỉnh của cây.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và mô tả một cạnh của cây.
Dữ liệu ra
- In ra nếu không thể biến cây thành một đường đi.
- Ngược lại, in ra số cạnh nhỏ nhất của đường đi thu được.
Ràng buộc
- ,
- Dữ liệu đảm bảo đồ thị đã cho là một cây.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 6 1 2 2 3 2 4 4 5 1 6 |
3 | Gộp hai đường đi và (cùng độ dài 2, xuất phát từ đỉnh 2). Sau khi gộp còn lại một đường đi 3 cạnh. |
| 7 1 2 1 3 3 4 1 5 5 6 6 7 |
-1 | Không thực hiện được thao tác nào. Chẳng hạn không thể gộp và vì đỉnh 6 còn có thêm đỉnh kề 7 không nằm trên đường đi. |
Bình luận