만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

최소 분산 신장 트리

시간 제한1초메모리 제한256 MB

요약
연결된 다중 그래프에서 간선 가중치의 분산이 가장 작은 신장 트리를 찾아 그 최소 분산을 출력합니다.
난이도

어려움10점 중 8점

유형
최소 신장 트리, 정렬, 수학
정답자
아직 제출이 없습니다

문제

소피는 오늘 분산의 개념을 간선에 가중치가 있는 트리로 확장할 수 있다는 것을 배웠다. 간선 집합이 EE인 트리의 분산은 각 간선의 가중치 wew_e와 간선 가중치의 평균 STS_T의 차를 제곱하여 모두 더한 값이다. 식으로 쓰면 다음과 같다.

∑e∈E(we−ST)2,ST=∑e∈Ewe∣E∣\sum_{e \in E} (w_e - S_T)^2, \quad S_T = \sum_{e \in E} \frac{w_e}{|E|}

소피는 주어진 다중 그래프의 신장 트리 중 분산이 가장 작은 트리를 구할 수 있는지 알고 싶어 한다. 이를 계산하는 것을 도와 달라.

입력

첫 줄에 양의 정수 nn과 mm이 주어진다 (2≤n≤100002 \leq n \leq 10000, 1≤m≤100001 \leq m \leq 10000). 각각 그래프의 정점 수와 간선 수이다. 이어지는 mm개의 줄에는 양의 정수 aia_i, bib_i, wiw_i가 주어진다 (1≤ai,bi≤n1 \leq a_i, b_i \leq n, ai≠bia_i \neq b_i, 1≤wi≤1000001 \leq w_i \leq 100000). 이는 ii번째 간선이 정점 aia_i와 bib_i를 잇고 가중치가 wiw_i임을 뜻한다.

그래프는 연결되어 있다. 두 정점 사이에 간선이 여러 개 있을 수 있으며, 그 간선들의 가중치는 서로 다를 수 있다.

출력

주어진 그래프의 신장 트리 중 분산이 가장 작은 값을 실수 하나로 출력한다. 절대 오차 또는 상대 오차가 10−610^{-6} 이하이면 정답으로 인정한다.

예제1

  1. 예제 1

    입력
    4 6
    1 2 3
    2 3 9
    3 4 7
    1 3 5
    1 3 6
    4 1 2
    
    예상 출력
    4.666666667