Hành trình cổ vật
Xem dưới dạng PDF
Gửi bài giải
Điểm:
25
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Một đoàn thám hiểm cổ học khảo sát mạng lưới \(N\) di chỉ liên kết bởi \(M\) lối đi một chiều. Để đảm bảo tính lịch sử, các lối đi luôn có hướng từ di chỉ cổ xưa hơn đến di chỉ mới hơn (do đó mạng lưới không bao giờ chứa chu trình). Mỗi con đường có một lượng cổ vật \(w\) có thể thu thập được.
Hãy tìm hành trình xuất phát từ di chỉ \(S\) đến di chỉ \(T\) sao cho thu thập được tổng số lượng cổ vật là lớn nhất.
Định dạng đầu vào
- Dòng đầu chứa bốn số nguyên \(N\), \(M\), \(S\), \(T\) (\(1 \le N \le 5000\), \(0 \le M \le 10000\), \(1 \le S, T \le N\)).
- \(M\) dòng tiếp theo, mỗi dòng chứa ba số nguyên \(u\), \(v\), \(w\) (\(1 \le u, v \le N\), \(-1000 \le w \le 1000\)), biểu thị lối đi một chiều từ \(u\) tới \(v\) thu hoạch được \(w\) cổ vật (nếu \(w\) âm, có nghĩa đoàn phải cống nạp cổ vật để được đi qua).
Định dạng đầu ra
- In ra tổng lượng cổ vật lớn nhất có thể thu thập. Nếu không thể đi từ \(S\) đến \(T\), in ra
unreachable.
Ràng buộc
- Subtask 1 (40% số điểm): \(N \le 100\), \(M \le 200\).
- Subtask 2 (60% số điểm): Không có ràng buộc gì thêm.
Ví dụ
Input:
3 3 1 3
1 2 5
2 3 10
1 3 12
Output:
15
Giải thích: Hành trình \(1 \to 2 \to 3\) thu thập được nhiều cổ vật nhất với tổng số lượng là \(5 + 10 = 15\) cổ vật.
Nhận xét