Time limit: 1.0s , Memory limit: 256M , Points: 1500 (partial)
Cho đồ thị dạng cây gồm đỉnh được đánh số từ đến . Đỉnh là đỉnh gốc của cây.
Đỉnh được gọi là tổ tiên của đỉnh nếu thỏa mãn cả hai điều kiện:
- Có cạnh nối giữa đỉnh và đỉnh .
- Khi thực hiện duyệt trên cây, đỉnh được thăm trước đỉnh .
Hãy tìm cách phân chia cây thành các đường đi thỏa mãn đồng thời:
- Mỗi đỉnh thuộc chính xác một đường đi, một đường đi có thể có một hoặc nhiều đỉnh, các đường đi không nhất thiết phải có cùng số lượng đỉnh.
- Mỗi đường đi có dạng , trong đó đỉnh là tổ tiên của đỉnh .
- Số lượng đường đi là ít nhất.
Ví dụ, cây với đỉnh và như hình sau:
Có thể phân chia cây trên thành đường đi như sau:
- → → đường đi có đỉnh
- đường đi có đỉnh
- đường đi có đỉnh
Input
- Dòng đầu tiên chứa hai số nguyên và ; .
- dòng tiếp theo, dòng thứ chứa hai số nguyên và mô tả cạnh thứ nối hai đỉnh ; .
- Dữ liệu đảm bảo đồ thị đã cho là một cây hợp lệ.
Output
- In ra số lượng đường đi ít nhất.
Examples
Sample Input
5 3
3 4
3 1
1 2
1 5
Sample Output
3
Scoring
- Subtask điểm:
- Subtask điểm: Không có ràng buộc gì thêm
Comments