Hành trình du lịch

Xem dạng PDF

Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Python
Hành trình du lịch
Mô tả và yêu cầu

Hành trình du lịch
Một Công ty du lịch dự định lập một hành trình du lịch xuất phát từ thành phố s với đích
đến là thành phố t (s ≠ t). Để xây dựng hành trình, Công ty sử dụng bản đồ giao thông bao gồm
n thành phố (trong đó có hai thành phố s và t) và m tuyến đường hai chiều, mỗi tuyến đường nối
hai thành phố. Các thành phố được đánh số từ 1 đến n, các tuyến đường được đánh số từ 1 đến
m. Ngoài 2 thành phố s và t, Công ty có một danh sách D gồm p danh thắng nằm ở p trong số n
thành phố.

Yêu cầu: Cho biết độ dài của mỗi tuyến đường, hãy giúp Công ty xây dựng hành trình du lịch
từ s đến t với tổng độ dài nhỏ nhất, với điều kiện hành trình xây dựng được phải đi qua ít nhất
một trong số các thành phố trong danh sách D. Giả thiết là luôn tồn tại đường đi như vậy.

Dữ liệu: Vào từ file văn bản TOUR.INP:

 Dòng đầu tiên chứa các số nguyên dương n, m, p, s, t (2 < n ≤ 1000);
 Dòng thứ i trong số m dòng tiếp theo chứa ba số nguyên ui, vi, di cho biết tuyến đường
thứ i nối hai thành phố ui, vi và có độ dài di (0 < di ≤ 105), i = 1, 2, ..., m;
 Dòng cuối cùng chứa p số nguyên là p chỉ số của các thành phố trong danh sách D.
Hai số liên tiếp trên cùng một dòng được ghi cách nhau ít nhất một dấu cách.

Kết quả: Ghi ra file văn bản TOUR.OUT một số nguyên là độ dài của hành trình tìm được.

Ví dụ
TOUR.INP               TOUR.OUT
       7 10 3 1 4             18
       1 2 1
       1 7 10
       1 5 6
       2 3 2
       3 4 3
       3 7 15
       4 6 7
       4 7 20
       5 6 10
       5 7 11
       5 6 7

Tải PDF gốc


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.