#G00011. Đường đi gần ngắn nhất (Almost Shortest Path)
Đường đi gần ngắn nhất (Almost Shortest Path)
Đường đi gần ngắn nhất (Almost Shortest Path)
Nguồn: UVa Online Judge
Phiên bản: Phước Hưng OJ Extended
Đề bài
Cho một đồ thị có hướng có trọng số dương, đỉnh xuất phát và đỉnh đích .
Xét tất cả các đường đi ngắn nhất từ đến . Mọi cạnh thuộc ít nhất một đường đi ngắn nhất như vậy đều bị loại bỏ.
Trên đồ thị còn lại, hãy tìm đường đi ngắn nhất từ đến . Đường này được gọi là almost shortest path — đường đi gần ngắn nhất.
Input
Dòng đầu chứa hai số nguyên .
Dòng thứ hai chứa hai số nguyên .
Trong dòng tiếp theo, mỗi dòng chứa , biểu diễn một cạnh có hướng từ đến có độ dài .
Với mỗi cặp có thứ tự , có nhiều nhất một cạnh từ đến .
Phiên bản Phước Hưng OJ chứa đúng một test case; dòng kết thúc 0 0 của đề gốc đã được loại bỏ.
Output
In độ dài của đường đi gần ngắn nhất.
Nếu sau khi loại các cạnh thuộc mọi đường đi ngắn nhất không còn đường đi từ đến , in -1.
Subtask
Trong tất cả các Subtask: ; ; ; ; có nhiều nhất một cạnh có hướng từ đến .
- Subtask 1 — 20% — 0.75 giây: ; .
- Subtask 2 — 30% — 1.50 giây: ; .
- Subtask 3 — 50% — 3.00 giây: ; .
Ví dụ
Input
7 9
0 6
0 1 1
0 2 1
0 3 2
0 4 3
1 5 2
2 6 4
3 6 2
4 6 4
5 6 1
Output
5
Giải thích

Các cạnh thuộc mọi đường đi ngắn nhất từ đến bị loại. Sau khi loại, đường đi tốt nhất còn lại có tổng trọng số .