아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

최소 중앙값 스패닝 트리

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

요약
노드 수가 짝수인 연결 그래프의 스패닝 트리 가운데 간선 비용 중앙값의 최솟값을 구합니다.
난이도

보통10점 중 7점

유형
최소 신장 트리, 유니온 파인드, 정렬
정답자
아직 제출이 없습니다

문제

노드 수가 짝수인 연결 무향 그래프가 주어진다. 연결 그래프는 모든 노드가 간선을 따라 직접 또는 다른 노드를 거쳐 이어진 그래프다.

이 그래프의 스패닝 트리 중 간선 비용의 중앙값이 가장 작은 것을 찾아 그 중앙값을 구한다. 스패닝 트리는 그래프의 모든 노드를 포함하는 트리다.

nn이 짝수이므로 스패닝 트리의 간선은 n−1n-1개, 즉 홀수 개다. 간선 비용을 오름차순으로 정렬했을 때 앞에서 n/2n/2번째 값이 중앙값이다.

입력

입력은 여러 개의 데이터셋으로 이루어진다. 각 데이터셋의 형식은 다음과 같다.

n m
s1 t1 c1
...
sm tm cm

첫 줄에는 짝수 nn (2≤n≤10002 \le n \le 1000)과 정수 mm (n−1≤m≤10000n-1 \le m \le 10000)이 주어진다. nn은 노드 수, mm은 간선 수다.

이어지는 mm개의 줄에는 sis_i, tit_i, cic_i가 주어진다 (1≤si≤n1 \le s_i \le n, 1≤ti≤n1 \le t_i \le n, si≠tis_i \ne t_i, 1≤ci≤10001 \le c_i \le 1000). 노드 sis_i와 tit_i를 잇는 비용 cic_i의 간선이 있다는 뜻이다. 같은 두 노드를 잇는 간선은 두 개 이상 주어지지 않는다. 각 데이터셋의 그래프는 연결 그래프다.

nn과 mm이 모두 00인 줄에서 입력이 끝난다. 이 줄에 대해서는 아무것도 출력하지 않는다.

출력

각 데이터셋마다 중앙값을 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    2 1
    1 2 5
    4 6
    1 2 1
    1 3 2
    1 4 3
    2 3 4
    2 4 5
    3 4 6
    8 17
    1 4 767
    3 1 609
    8 3 426
    6 5 972
    8 1 607
    6 4 51
    5 1 683
    3 6 451
    3 4 630
    8 7 912
    3 7 43
    4 7 421
    3 5 582
    8 4 538
    5 7 832
    1 6 345
    8 2 608
    0 0
    
    예상 출력
    5
    2
    421