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

Không có ý kiến tại thời điểm này.