Thành phố Alpha có n đầu mút giao thông và m đoạn đường hai chiều, mỗi đoạn kết nối hai đầu mút. Các đầu mút được đánh số từ 1 đến n. Mỗi đoạn đường đường có độ dài là một số nguyên dương. Trong những giờ cao điểm các đoạn đường có mật độ giao thông tăng chóng mặt. Do đó, để đánh giá khả năng tìm đường thay thế tránh mỗi đoạn đường (x, y), Ban giải pháp chống tắc nghẽn của thành phố mới đưa vào một đại lượng gọi là giá trị thay thế rx,y được tính bởi công thức sau:
với
• f(u, v, x, y) là độ dài đường đi ngắn nhất từ u đến v khi mà đoạn (x, y) bị nghẽn không di chuyển qua được.
• g(u, v) là độ dài đường đi ngắn nhất từ u đến v mà không có đoạn đường nào bị nghẽn. Đặt rxy = −1 nếu không có đường đi nào giữa hai đầu mút u, v bất kỳ khi đoạn (x, y) bị nghẽn. Nhắc lại độ dài đường đi từ u đến v là tổng tất cả độ dài các đoạn đường trên đường đi đó.
Yêu cầu: Hãy tìm đoạn đường có giá trị thay thế lớn nhất.
Dữ liệu vào
• Dòng đầu tiên chứa hai số nguyên n, m
• Dòng thứ ith trong số m dòng tiếp theo chứa ba số nguyên dương xi , yi , di ,(1 ≤ xi , yi < n, di ≤ 106 với i = 1, 2, ..., m) mô tả một đoạn đường hai chiều có các đầu mút xi và yi với khoảng cách di .
Kết quả
Ghi ra trên một dòng duy nhất giá trị rmax tìm được với sai số nhỏ hơn 10−6.
Input
5 7
1 2 1
1 3 2
1 4 1
2 3 5
2 5 1
5 3 1
3 4 6
Output
8.000000
Input
3 2
1 2 8
2 3 5
Output
1.000000
Input
2 1
1 2 10
Output
-1.000000
Giới hạn:
- Subtask 1: Có 20% số test ứng với (2 ≤ n ≤ 200, 1 ≤ m ≤ 2000);
- Subtask 2: Có 30% số test ứng với (2 ≤ n ≤ 1000, 1 ≤ m ≤ 2000);
- Subtask 3: Có 50% số test ứng với (2 ≤ n ≤ 1000, 1 ≤ m ≤ 10000);
Nguồn: ĐPT '1819