Cho một đồ thị vô hướng có trọng số gồm n đỉnh và m cạnh. Các đỉnh được đánh số từ 1 đến n.
Bạn hãy tìm đường đi ngắn thứ k trong đồ thị này (đường đi từ một đỉnh đến chính nó không được tính, đường đi từ đỉnh i đến j và từ j đến i được xem là một).
Cụ thể nếu d là ma trận đường đi ngắn nhất, ở đó dij là độ dài đường đi ngắn nhất giữa hai đỉnh i và j (1 ≤ i < j ≤ n), thì bạn cần đưa ra phần tử thứ k của mảng đã được sắp xếp gồm tất cả các dij (1 ≤ i < j ≤ n).
Dữ liệu vào:
+ Dòng đầu tiên chứa 3 số nguyên n, m và k (2 ≤ n, m ≤ 105, 1 ≤ k ≤ 103) lần lượt là số đỉnh, số cạnh của đồ thị và giá trị k.
+ Tiếp theo có m dòng, mỗi dòng chứa 3 số nguyên x, y và w (1 ≤ x, y ≤ n, 1 ≤ w ≤ 109, x ≠ y) mô tả một cạnh nối hai đỉnh x, y với trọng số w (giữa hai đỉnh bất kỳ có tối đa một cạnh nối chúng).
Kết quả:
+ Một số nguyên là độ dài đường đi ngắn thứ k của đồ thị. Dữ liệu vào đảm bảo luôn tồn tại đường đi ngắn thứ k.
Ví dụ:
Input | Output | Input | Output | |
---|---|---|---|---|
6 10 5 2 5 1 5 3 9 6 2 2 1 3 1 5 1 8 6 5 10 1 6 5 6 4 6 3 6 2 3 4 5 | 3 | 7 15 18 2 6 3 5 7 4 6 5 4 3 6 9 6 7 7 1 6 4 7 1 6 7 2 1 4 3 2 3 2 8 5 3 6 2 5 5 3 7 9 4 1 8 2 1 1 | 9 |
Ràng buộc:
+ Có 25% test: 1 ≤ k ≤ 3;
+ Có 25% test: n ≤ 102;
+ Có 25% test: k ≤ 102;
+ Có 25% còn lại: Như ràng buộc trong đề bài.
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 |