Đường đi ưu tiên ít cạnh
Xem dưới dạng PDF
Gửi bài giải
Điểm:
15
Giới hạn thời gian:
1.5s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Mạng lưới giao thông của An gồm \(N\) thành phố và \(M\) con đường một chiều có độ dài khác nhau.
Nếu có nhiều đường đi có cùng độ dài ngắn nhất từ \(S\) đến \(T\), An muốn chọn đường đi đi qua ít con đường nhất (để đỡ phải dừng lại chuyển tiếp). Hãy tìm độ dài ngắn nhất và số lượng con đường ít nhất trên lộ trình đó.
Định dạng đầu vào
- Dòng đầu chứa bốn số nguyên \(N, M, S, T\) (\(1 \le N \le 10^5\), \(0 \le M \le 2 \cdot 10^5\), \(1 \le S, T \le N\)).
- \(M\) dòng tiếp theo, mỗi dòng chứa ba số nguyên \(u, v, w\) (\(1 \le u, v \le N\), \(1 \le w \le 10^9\)) mô tả con đường một chiều từ \(u\) sang \(v\) có độ dài \(w\).
Định dạng đầu ra
- In ra hai số nguyên là độ dài ngắn nhất và số con đường ít nhất tương ứng. Nếu không thể đi tới, in ra \(-1 -1\).
Ràng buộc
| Subtask | Tỉ lệ điểm | Ràng buộc |
|---|---|---|
| 1 | 40% | \(N \le 1000\), \(M \le 2000\) |
| 2 | 60% | Không có ràng buộc gì thêm |
Ví dụ
Input:
4 4 1 4
1 2 2
2 4 3
1 3 4
3 4 1
Output:
5 2
(Giải thích ví dụ: Có 2 đường ngắn nhất dài 5 là 1 -> 2 -> 4 (2 cạnh) và 1 -> 3 -> 4 (2 cạnh). Số cạnh tối thiểu là 2).
Nhận xét