RROAD - Giá trị đường thay thế
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 512 megabyte
Đăng bởi: admin

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 xiyi 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

Ví dụ

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

Back to Top