Thành phố nơi Bình ở có \(n\) giao lộ (đánh số từ 1 tới \(n\)) và \(m\) con đường 2 chiều kết nối các giao lộ. Có \(k\) cửa hàng chocolate, mỗi cửa hàng đặt tại một giao lộ nào đó. Vị trí của Bình là giao lộ \(a\) còn vị trí Crush là giao lộ \(b\), Bình biết rằng Crush thích chocolate nên trong dịp Valentine năm nay Bình sẽ không bỏ qua cơ hội này. Chocolate được bảo quản trong ngăn lạnh của cửa hàng nên có thể bảo quản trong bao lâu cũng được, tuy nhiên sau khi mua và mang đi thì chỉ bảo quản được trong \(x\) đơn vị thời gian, sau đó sẽ hỏng.
Mỗi con đường có độ dài nhất định và thời gian đi qua 1 đơn vị độ dài hết 1 đơn vị thời gian. Bạn hãy giúp Bình xác định thời gian tối thiểu để mang chocolate cho Crush.
Dữ liệu vào:
Dòng đầu tiên chứa số nguyên \(n,m,\ k,\ x\ (1 \leq n \leq 10^{5};1 \leq m \leq \min{\left( 10^{6},\frac{n(n - 1)}{2} \right);1 \leq k \leq n - 1;1 \leq x \leq n)\ }\);
Dòng thứ 2 chứa \(k\) số nguyên là chỉ số của các giao lộ có đặt cửa hàng chocolate;
\(m\) dòng tiếp theo mỗi dòng chứa 3 số nguyên \(u,v,d\ (1 \leq u,v \leq n;\ 1 \leq d \leq 500)\) mô tả 1 con đường 2 chiều nối 2 giao lộ \(u,v\) có độ dài \(d\);
Dòng cuối chứa 2 số nguyên \(a,b\ (1 \leq a,b \leq n)\) là vị trí của Bình và Crush.
Kết quả:
+ Gồm 1 số nguyên là thời gian tối thiểu để Bình tặng chocolate
cho Crush, nếu không thể thì ghi \(-
1\).
Ví dụ:
Input | Output | Input | Output | |
---|---|---|---|---|
7 3 1 6 1 4 7 1 3 5 7 6 1 3 6 2 | -1 | 5 9 1 4 5 3 5 3 2 4 3 3 2 4 1 4 4 1 5 2 4 3 3 2 5 5 1 2 4 4 5 1 1 4 | 3 |
Code tích cực |
---|
Trong 24h |
|
Trong 7 ngày |
|
Trong 30 ngày |
|
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 38905 |