#776. Đường bộ và Đường hàng không (ROADPLANE)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Farmer John đang khảo sát phương án bán sữa tại một khu vực mới. Ông muốn gửi sữa đến T thị trấn, được đánh số từ 1 đến T . Các thị trấn này được kết nối bởi R con đường bộ (đánh số từ 1 đến R ) và P đường bay (đánh số từ 1 đến P ). Mỗi con đường bộ i hoặc đường bay i nối thị trấn A_i đến B_i với chi phí là C_i .

Đối với đường bộ, 0 \le C_i \le 10^4 . Tuy nhiên, chi phí đường bay rất kỳ lạ, chi phí C_i có thể là số âm. Đường bộ là hai chiều, có thể đi từ A_i đến B_i hoặc từ B_i đến A_i với cùng chi phí C_i . Ngược lại, đường bay là một chiều, chỉ có thể đi từ A_i đến B_i .

Thực tế, do tình hình an ninh gần đây, có một số chính sách đảm bảo rằng: Nếu có một đường bay từ A_i đến B_i , thì đảm bảo không thể quay lại A_i từ B_i thông qua bất kỳ con đường bộ hay đường bay nào. Vì thế giới bò sữa của FJ được công nhận là rất mạnh mẽ, ông cần vận chuyển bò đến mọi thị trấn. Ông muốn tìm phương án rẻ nhất để vận chuyển bò từ thị trấn trung tâm phân phối S đến từng thị trấn khác, hoặc biết rằng điều đó là không thể.

Dữ liệu:

  • Dòng đầu tiên chứa bốn số nguyên cách nhau bởi dấu cách: T, R, P, S .
  • Từ dòng thứ 2 đến dòng R+1 : Ba số nguyên cách nhau bởi dấu cách (mô tả một con đường bộ): A_i, B_i C_i .
  • Từ dòng R+2 đến dòng R+P+1 : Ba số nguyên cách nhau bởi dấu cách (mô tả một đường bay): A_i, B_i C_i .

Kết quả:

  • Xuất ra T dòng, dòng thứ i biểu thị chi phí nhỏ nhất để đến thị trấn i . Nếu không tồn tại đường đi, xuất ra NO PATH.

Ví dụ:

Dữ liệu:

6 3 3 4
1 2 5
3 4 5
5 6 10
3 5 -100
4 6 -100
1 3 -10

Kết quả:

NO PATH
NO PATH
5
0
-95
-100

Giới hạn: 1\le T\le 2.5\times 10^4, 1\le R,P\le 5\times 10^4, 1\le A_i,B_i,S\le T .

  • Đảm bảo với mọi đường bộ: 0 \le C_i \le 10^4 .
  • Với mọi đường bay: -10^4 \le C_i \le 10^4 .