1299 - Tô màu đồ thị

Tạo bởi: CLB Olympic Tin học HUTECH

Mô tả yêu cầu

Bạn được cho một đồ thị có hướng, cạnh có trọng số. Trong đó, một số đỉnh được tô màu đen.

Cho 2 đỉnh st (s \neq t). Hãy tìm đường đi có chi phí ít nhất từ s đến t thỏa mãn:

  1. Gọi w(e) là trọng số của cạnh e. Với bất kì 2 cạnh x, y kề nhau trên đường đi: 0.5 \times w(x) \leq w(y) \leq 2 \times w(x)
  2. Đường đi từ s đến t phải có chính xác 1 lần xuất hiện của 1 đỉnh được tô màu đen.

Dữ liệu vào

  • Dòng đầu tiên gồm 2 số nguyên nm (1 \leq n \leq 10^5, 1 \leq m \leq 5 \times 10^5) — số đỉnh và số cạnh của đồ thị.
  • m dòng tiếp theo, dòng thứ i gồm 3 số nguyên u_i, v_i, w_i (1 \leq u_i, v_i \leq n, 1 \leq w_i \leq 10^9) — biểu diễn một cạnh có hướng từ u đến v với trọng số là w.
  • Dòng tiếp theo sau đó gồm 1 số nguyên k (1 \leq k \leq n) — số lượng đỉnh được tô màu đen.
  • Dòng tiếp theo gồm k số nguyên a_j (1 \leq a_j \leq n) — chỉ số của đỉnh được tô màu đen.
  • Dòng cuối cùng gồm 2 số nguyên st (1 \leq s, t \leq n, s \neq t) — Đỉnh bắt đầu và đỉnh kết thúc.

Lưu ý: Đồ thị có thể có nhiều hơn 1 cạnh giữa 2 đỉnh bất kì và đảm bảo không có cạnh nối 1 nút đến chính nó.

Dữ liệu ra

Nếu không có đường đi từ s đến t thỏa mãn, in ra -1. Nếu có, in ra giá trị đường đi hợp lệ có chi phí ít nhất từ s đến t.

Giới hạn

  • Subtask 1 (30% số test): Trọng số của tất cả các cạnh đều bằng nhau.
  • Subtask 2 (30% số test): 1 \leq n, m \leq 10^3
  • Subtask 3 (40% số test): Không có ràng buộc gì thêm

Ví dụ

Dữ liệu vào Sao chép
4 4
1 2 1
2 3 1
3 4 1
1 3 1
1
4
1 4
Dữ liệu ra Sao chép
2
Dữ liệu vào Sao chép
3 3
1 2 3
2 3 1
2 3 3
1
3
1 3
Dữ liệu ra Sao chép
6
Dữ liệu vào Sao chép
4 4
1 2 1
2 3 1
1 3 1
1 3 1
1
4
1 4
Dữ liệu ra Sao chép
-1

Gợi ý/Hướng dẫn

  • Trong ví dụ 1, đường đi 1-3-41 đường đi hợp lệ với chi phí 2 và có chính xác 1 đỉnh được tô màu đen là đỉnh 4. Tuy 1-2-3-4 cũng là 1 đường đi hợp lệ, nhưng chi phí của đường đi là 3. Vậy nên 2 là chi phí ít nhất của đường đi thỏa mãn.

  • Trong ví dụ 2, đầu tiên mình đi qua cạnh 1-2 với chi phí là 3. Tuy có cạnh 2-3 với chi phí là 1, nhưng do 0.5 \times 3 > 1, nên chúng ta không thể chọn cạnh này được. Nên chỉ còn cách chọn cạnh 2-3 với chi phí là 3. Kết quả là 3 + 3 = 6.

  • Trong ví dụ 3, không có đường đi hợp lệ từ 1 đến 4, nên chúng ta in ra -1.

Đăng nhập để làm bài
Thông tin
Giới hạn thời gian 2 giây
Giới hạn bộ nhớ 128 MB