Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
LCMONEY - Đồng bạc cổ |
Rôn là một người cởi mở và vì vậy có rất nhiều bạn bè. Một buổi tối, khi mở Mail, Rôn ngạc nhiên một cách thú vị khi thấy Mail của một người bạn cũ thời niên thiếu mời tới họp mặt. Không một chút lưỡng lự, Rôn nhận lời. Biết rằng bạn mình say mê sưu tập tiền cổ và trong bộ sưu tập còn thiếu một đồng bạc đặc biệt thời trung cổ.
Nước của Rôn có n thành phố, đánh số từ 1 đến n nối với nhau bởi m đường hai chiều, mỗi con đường nối một cặp hai thành phố khác nhau và mỗi cặp thành phố có không quá một con đường nối trực tiếp. Rôn ở thành phố A, người bạn - ở thành phố B (A ≠ B). Qua thông tin mà bạn bè và internet cung cấp Rôn biết danh sách k thành phố có bán đồng tiền này và giá bán ở mỗi thành phố. Internet cũng cho biết chi phí dij đi từ i tới j nếu hai thành phố này có đường nối trực tiếp.
Rôn quyết định sẽ lái xe đi từ A tới B và sẽ mua đồng tiền cổ ở một trong số các thành phố trên đường đi. Vấn đề là phải chọn đường đi sao cho tổng chi phí đi cộng với chi phí mua đồng tiền cổ là nhỏ nhất.
Yêu cầu: Xác định tổng chi phí nhỏ nhất để thực hiện kế hoạch của Rôn.
Dữ liệu:
- Dòng đầu tiên chứa 3 số nguyên n, m và k (2 ≤ n ≤ 5000, 1 ≤ m ≤ 100 000, 1 ≤ k ≤ n),
- Dòng thứ 2 chứa 2 số nguyên A và B,
- Dòng thứ 3 chứa k cặp số nguyên, mỗi cặp xác định thành phố và giá bán đồng tiền cổ (nằm trong phạm vi từ 1 đến 109), ở các thành phố khác nhau – giá khác nhau,
- Mỗi dòng trong m dòng còn lại chứa 3 số nguyên i, j và dij (1 ≤ dij ≤ 105).
Kết quả: Đưa ra hai số nguyên – chi phí nhỏ nhất tìm được và số hiệu cửa hàng cần mua đồng tiền cổ, nếu có nhiều thành phố mua đồng tiền cổ với chi phí nhỏ nhất thì chọn thành phố có đồng tiền trị giá nhất, nếu có nhiều thành phố thỏa mãn với trị giá đồng tiền cổ như nhau thì chọn thành phố có chỉ số nhỏ nhất.
Ví dụ:
Input:
5 7 4
1 4
1 100 4 50 3 10 2 55
1 2 10
5 3 42
1 3 30
2 4 50
3 4 70
2 5 24 4 5 21
Output:
103 3
Được gửi lên bởi: | noname00.pas |
Ngày: | 2017-11-13 |
Thời gian chạy: | 0.100s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | C-CLANG C CSHARP C++ 4.3.2 CPP CPP14 CPP14-CLANG C99 JAVA PAS-FPC PYTHON PYTHON3 |
Nguồn bài: | Bài tập thực hành CSL (Lào Cai chia sẻ) |