1507 - Đường đi ngắn nhất

Tạo bởi: GV. Bùi Phú Khuyên

Mô tả yêu cầu

Cho đơn đồ thị có hướng G = (N,E) với hàm trọng số w: E → R (w(e) được gọi là độ dài hay trọng số của cạnh e)

Đường đi ngắn nhất từ đỉnh u đến đỉnh v là đường đi có độ dài ngắn nhất trong số các đường đi nối u với v.

Cho đồ thị có trọng số G = (N, E) và đỉnh nguồn S \in N, hãy tìm đường đi ngắn nhất từ S đến mỗi đỉnh còn lại.

17021154189259.png

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm là số đỉnh và số cạnh của G.
  • m dòng tiếp theo, mỗi dòng chứa ba số số u, v, c cho biết một cạnh nối hai đỉnh uv trong G và trọng số c = w(u,v) tương ứng.
  • Dòng cuối chứa 2 số nguyên SF là đỉnh bắt đầu và đỉnh kết thúc.

Dữ liệu ra

  • Trường hợp tìm thấy kết quả:

    • Dòng đầu ghi một số nguyên là tổng trọng số đường đi ngắn nhất.
    • Dòng thứ hai in ra đường đi ngắn nhất (mỗi đỉnh cách nhau một khoảng trống)
  • Trường hợp không tìm ra đường đi thoả mãn, in ra -1

Lưu ý: Dữ liệu mẫu mang tính tham khảo. Bạn có thể in ra đường đi khác nhau nhưng vẫn đảm bảo có đường đi ngắn nhất

Ví dụ

Dữ liệu vào Sao chép
7 12
1 2 3
1 3 5
2 3 1
2 4 5
2 5 3
3 4 2
3 6 2
4 5 4
4 6 2
5 6 1
5 7 6
6 7 3
1 7
Dữ liệu ra Sao chép
9
1 2 3 6 7
Dữ liệu vào Sao chép
7 12
1 2 3
1 3 5
2 3 1
2 4 5
2 5 3
3 4 2
3 6 2
4 5 4
4 6 2
5 6 1
5 7 6
6 7 3
2 1
Dữ liệu ra Sao chép
-1
Đăng nhập để làm bài
Thông tin
Giới hạn thời gian 1 giây
Giới hạn bộ nhớ 128 MB