#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 SS và đỉnh đích DD.

Xét tất cả các đường đi ngắn nhất từ SS đến DD. 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ừ SS đến DD. Đườ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 N,MN,M.

Dòng thứ hai chứa hai số nguyên S,DS,D.

Trong MM dòng tiếp theo, mỗi dòng chứa U,V,PU,V,P, biểu diễn một cạnh có hướng từ UU đến VV có độ dài PP.

Với mỗi cặp có thứ tự (U,V)(U,V), có nhiều nhất một cạnh từ UU đến VV.

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ừ SS đến DD, in -1.

Subtask

Trong tất cả các Subtask: 0≤S,D,U,V<N0\le S,D,U,V<N; S≠DS\ne D; U≠VU\ne V; 1≤P≤1031\le P\le10^3; có nhiều nhất một cạnh có hướng từ UU đến VV.

  • Subtask 1 — 20% — 0.75 giây: 2≤N≤502\le N\le50; 1≤M≤5001\le M\le500.
  • Subtask 2 — 30% — 1.50 giây: 2≤N≤2002\le N\le200; 1≤M≤40001\le M\le4000.
  • Subtask 3 — 50% — 3.00 giây: 2≤N≤5002\le N\le500; 1≤M≤1041\le M\le10^4.

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ừ 00 đến 66 bị loại. Sau khi loại, đường đi tốt nhất còn lại có tổng trọng số 55.