Hành trình thu thập

Xem dưới dạng PDF

Gửi bài giải


Điểm: 10
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 nhà thám hiểm đang khảo sát vùng đất mới gồm \(N\) địa điểm và \(M\) con đường một chiều nối giữa chúng. Mỗi con đường có một lượng năng lượng tiêu thụ nhất định (nếu dương) hoặc lượng năng lượng nạp lại từ các túi quà trên đường (nếu âm).

Hãy tìm lượng năng lượng tích lũy tối thiểu cần thiết để đi từ địa điểm xuất phát \(S\) đến tất cả các địa điểm khác trên bản đồ. Giả sử ban đầu lượng năng lượng tích lũy tại \(S\) bằng \(0\). Vùng đất này được đảm bảo không chứa các khu vực nạp năng lượng vô hạn (tức là không chứa chu trình âm).

Dữ liệu vào
  • Dòng đầu tiên chứa ba số nguyên \(N, M\) và \(S\) (\(1 \le N \le 1000\), \(1 \le M \le 5000\), \(1 \le S \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\)) mô tả một con đường một chiều đi từ \(u\) đến \(v\) có lượng năng lượng thay đổi là \(w\).
Kết quả ra
  • In ra \(N\) số nguyên trên một dòng, số thứ \(i\) là lượng năng lượng tích lũy nhỏ nhất để đi từ \(S\) đến địa điểm \(i\). Nếu không thể đi đến địa điểm \(i\), in ra \(-1\).
Ví dụ
Input
4 4 1
1 2 5
2 3 -2
1 3 4
3 4 1
Output
0 5 3 4

Nhận xét

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