Kế hoạch bay
Xem dạng PDFMô tả bài toán
Nông dân John đang nghiên cứu một hợp đồng sữa mới ở một lãnh thổ mới. Anh ta dự định phân phối sữa đến T (1 ≤ T ≤ 25.000) thị trấn, được đánh số từ 1 đến T. Các kết nối giữa các thị trấn bao gồm:
- Đường bộ: Là các kết nối hai chiều, mỗi đường bộ có chi phí Cᵢ (0 ≤ Cᵢ ≤ 10.000).
- Chuyến bay: Là các kết nối một chiều (máy bay), mỗi chuyến bay có chi phí Cᵢ (-10.000 ≤ Cᵢ ≤ 10.000).
John có nhiệm vụ tìm chi phí tối thiểu để đi từ thị trấn S (điểm khởi hành) đến tất cả các thị trấn khác. Nếu không có cách nào để đi đến một thị trấn cụ thể, in ra "NO PATH".
Định dạng đầu vào
Dòng 1: Bốn số nguyên cách nhau bởi dấu cách: T, R, P, S:
- T: Số lượng thị trấn.
- R: Số lượng đường bộ.
- P: Số lượng chuyến bay.
- S: Thị trấn khởi hành (1 ≤ S ≤ T).
Dòng 2 đến R+1: Mỗi dòng gồm ba số nguyên Aᵢ, Bᵢ, Cᵢ:
- Aᵢ và Bᵢ: Hai thị trấn được kết nối bởi đường bộ.
- Cᵢ: Chi phí đi qua đường bộ này (hai chiều).
Dòng R+2 đến R+P+1: Mỗi dòng gồm ba số nguyên Aⱼ, Bⱼ, Cⱼ:
- Aⱼ: Thị trấn xuất phát của chuyến bay.
- Bⱼ: Thị trấn đích của chuyến bay.
- Cⱼ: Chi phí chuyến bay này (một chiều).
Định dạng đầu ra
- In T dòng, dòng thứ ~i~ chứa chi phí tối thiểu từ S đến thị trấn ~i~:
- Nếu không có cách nào để đến thị trấn ~i~, in
"NO PATH".
- Nếu không có cách nào để đến thị trấn ~i~, in
Ví dụ
Input:
6 3 4 4
1 2 5
3 4 5
5 6 10
3 5 -100
4 1 -100
3 4 -100
1 3 -10
Output:
NO PATH
NO PATH
5
0
-95
-100
Bình luận
Gửi bài giải
Kotlin
PyPy
Điểm:
10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Đồ thị
Ngôn ngữ cho phép
C
C++
Java
Pascal
Python
Scratch