Mashmokh và Bể Nước
Đề bài
Mô tả
Cho một cây có gốc gồm đỉnh, đánh số từ đến , đỉnh là gốc. Mỗi đỉnh có một bể nước, ban đầu tất cả đều rỗng.
Bạn có lít nước và đồng. Trò chơi diễn ra như sau:
- Bước chuẩn bị: chọn không quá đỉnh không phải gốc và đổ chính xác lít nước vào mỗi đỉnh được chọn.
- Sau đó lặp lại các bước dưới đây cho đến khi không còn nước trong cây:
- Mở cửa tất cả các bể. Sau đó chọn một số đỉnh không phải gốc để đóng cửa trong bước này. Nếu một bể chứa lít nước bị đóng cửa, bạn phải trả đồng.
- Sắp xếp các đỉnh theo độ sâu không giảm: (với là gốc). Lần lượt xét từng đỉnh trong danh sách:
- Đỉnh (gốc): toàn bộ nước trong gốc được lấy ra.
- Đỉnh với : nếu cửa của đang đóng thì bỏ qua; ngược lại, toàn bộ nước trong bể của chảy về bể của cha (kể cả khi cửa của cha đang đóng).
Giả sử trò chơi kết thúc sau bước, và là số lít nước có trong bể gốc sau bước thứ . Bạn thắng đồng. Hỏi giá trị lớn nhất bạn có thể thắng được?
Lưu ý: số đồng dùng để đóng cửa được tính riêng cho mỗi bước — nếu cùng một bể bị đóng trong nhiều bước, bạn phải trả mỗi bước. Tổng số đồng dùng trong cả trò chơi không được vượt quá .
Dữ liệu vào
- Dòng đầu chứa ba số nguyên , , .
- dòng tiếp theo, mỗi dòng chứa hai số nguyên , — một cạnh của cây.
Dữ liệu ra
In ra một số nguyên duy nhất — đáp án bài toán.
Ràng buộc
- ,
- Dữ liệu vào luôn đảm bảo tạo thành một cây với gốc tại đỉnh .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 10 2 1 1 2 1 3 3 4 3 5 2 6 6 8 6 7 9 8 8 10 |
2 | Đổ lít vào đỉnh và đỉnh (độ sâu và ). Bước : đóng cửa đỉnh (tốn đồng), nước từ đỉnh chảy về đỉnh . Bước : mở tất cả cửa, đỉnh có lít chảy về gốc. Đáp án bằng . |
| 5 1000 1000 1 2 1 3 3 4 3 5 |
4 | Có thể đổ nước vào cả đỉnh không phải gốc và sắp xếp để gốc nhận lít trong cùng một bước. |
Bình luận