#G00016. Giữ kích thước lớn nhất (Get Shorty)

Giữ kích thước lớn nhất (Get Shorty)

Giữ kích thước lớn nhất (Get Shorty)

Nguồn: Kattis

Phiên bản: Phước Hưng OJ Extended

Đề bài

Một mê cung được mô hình hóa thành đồ thị vô hướng. Bạn bắt đầu tại giao điểm 00 và muốn tới giao điểm n−1n-1.

Mỗi hành lang có một hệ số ff với 0<f≤10<f\le1. Khi đi qua hành lang, kích thước hiện tại bị nhân với ff.

Nếu đi qua các hành lang có hệ số f1,f2,…,fkf_1,f_2,\ldots,f_k, phần kích thước còn lại là

f1f2⋯fk.f_1f_2\cdots f_k.

Hãy chọn đường đi để phần kích thước còn lại là lớn nhất. Đề bảo đảm luôn có đường từ giao điểm 00 đến giao điểm n−1n-1.

Input

Dòng đầu chứa hai số nguyên n,mn,m.

Trong mm dòng tiếp theo, mỗi dòng chứa x,y,fx,y,f, mô tả một hành lang hai chiều giữa xx và yy. Giá trị ff có nhiều nhất bốn chữ số sau dấu thập phân.

Các giao điểm được đánh số từ 00 đến n−1n-1.

Output

In phần kích thước lớn nhất còn lại khi đến giao điểm n−1n-1, với đúng bốn chữ số sau dấu thập phân.

Subtask

Trong tất cả các Subtask: 2<n<1042<n<10^4; 1<m<1.5⋅1041<m<1.5\cdot10^4; 0≤x,y<n0\le x,y<n; 0<f≤10<f\le1; ff có nhiều nhất bốn chữ số sau dấu thập phân; luôn tồn tại đường từ 00 đến n−1n-1.

  • Subtask 1 — 10%: Mọi hành lang có cùng một hệ số ff.
  • Subtask 2 — 20%: Đồ thị là một cây, tức m=n−1m=n-1.
  • Subtask 3 — 30%: n≤300n\le300; m≤1500m\le1500.
  • Subtask 4 — 40%: Không có điều kiện bổ sung.

Ví dụ

Input

3 3
0 1 0.9
1 2 0.9
0 2 0.8

Output

0.8100

Giải thích

Đường 0→1→20\to1\to2 giữ lại 0.9⋅0.9=0.810.9\cdot0.9=0.81, lớn hơn đường trực tiếp chỉ giữ 0.80.8. Vì vậy kết quả là 0.8100.