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