Cấp nước ký túc xá
Đề bài
Mô tả
Ký túc xá có ngôi nhà được đánh số từ đến . Giữa các nhà có đường ống nước ngầm. Mỗi đường ống có một chiều cố định (nước chỉ chảy theo chiều đó) và một đường kính đặc trưng cho lượng nước tối đa mà ống chịu được.
Với mỗi ngôi nhà, có nhiều nhất một đường ống đi vào và nhiều nhất một đường ống đi ra.
Ta cần lắp bồn chứa và vòi nước như sau:
- Nhà nào có ống đi ra nhưng không có ống đi vào thì lắp một bồn chứa.
- Nhà nào có ống đi vào nhưng không có ống đi ra thì lắp một vòi nước.
Nước từ mỗi bồn chứa chảy theo dãy đường ống và đổ ra đúng một vòi nước. Để đường ống không bị vỡ, lượng nước chảy từ một bồn tới vòi tương ứng không được vượt quá đường kính của bất kỳ đường ống nào trên đường đi giữa chúng.
Hãy tìm lượng nước lớn nhất có thể dẫn an toàn từ mỗi bồn chứa tới vòi nước tương ứng.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và : số ngôi nhà và số đường ống.
- dòng tiếp theo, mỗi dòng chứa ba số nguyên , , : một đường ống đường kính đi từ nhà tới nhà .
Dữ liệu ra
- Dòng đầu in số nguyên : số cặp (bồn chứa, vòi nước).
- dòng tiếp theo, mỗi dòng in ba số nguyên , , : chỉ số nhà đặt bồn chứa, chỉ số nhà đặt vòi nước, và lượng nước lớn nhất dẫn được.
Các dòng phải được in theo thứ tự tăng dần của .
Ràng buộc
- ,
- Mỗi nhà có nhiều nhất một ống đi vào và nhiều nhất một ống đi ra.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 2 1 2 10 2 3 20 |
1 1 3 10 |
Nhà 1 có ống ra mà không có ống vào nên đặt bồn; nhà 3 có ống vào mà không có ống ra nên đặt vòi. Đường đi có hai ống đường kính và , nên lượng nước an toàn tối đa là . |
| 3 3 1 2 20 2 3 10 3 1 5 |
0 | Ba đường ống tạo thành một vòng khép kín. Mọi nhà đều vừa có ống vào vừa có ống ra nên không nhà nào được đặt bồn hay vòi. |
| 4 2 1 2 60 3 4 50 |
2 1 2 60 3 4 50 |
Hai đường đi rời nhau, mỗi đường chỉ gồm một ống nên lượng nước bằng chính đường kính ống đó. Kết quả in theo thứ tự tăng dần của nhà đặt bồn. |
Bình luận