센서 네트워크

시간 제한3초메모리 제한128 MB

요약
가중치가 있는 단순 그래프에서 모든 정점을 덮는 연결 스패닝 부분그래프를 이루는 간선들의 전압 구간 중 최소 폭을 구합니다.
난이도

보통10점 중 6점

유형
유니온 파인드, 정렬, 그래프
정답자
아직 제출이 없습니다

문제

건물은 여러 개의 센서로 보호된다. 각 센서는 서로 다른 두 개의 문을 담당하며, 모든 문은 적어도 하나의 센서가 담당한다. 문을 그래프의 정점, 센서를 그래프의 간선이라고 생각하자. 이 그래프는 단순 그래프이며, 같은 두 문을 담당하는 센서는 두 개 이상 존재하지 않는다.

각 센서에는 권장 전압이 적혀 있다. 센서는 권장 전압 이상에서 동작할 수 있으며(권장 전압보다 높은 전압을 걸수록 고장 위험이 커진다), 권장 전압보다 낮은 전압에서는 절대 동작하지 않는다. 거의 모든 센서의 권장 전압은 서로 다르다.

당신은 센서의 부분집합을 켜야 한다. 어떤 부분집합이 다음 두 조건을 모두 만족하면 가능한 부분집합이라고 부른다.

  • 덮개. 모든 문은 그 부분집합에 속한 센서 중 적어도 하나가 담당한다.
  • 연결성. 전력은 켜져 있는 센서 하나에 공급된 뒤 전선을 통해 다른 센서로 전달된다. 전선은 같은 문을 공유하는 두 개의 켜진 센서만 연결할 수 있다(어떤 문을 두 센서가 함께 담당하면 두 센서는 이웃이다). 켜진 모든 센서에 전력이 공급되어야 하므로, 켜진 센서들은 이러한 전선을 통해 서로 도달할 수 있어야 한다. 즉 하나의 연결된 덩어리를 이루어야 한다.

켜진 모든 센서에는 같은 전압이 공급되며, 그 전압은 어떤 센서의 권장 전압보다도 낮을 수 없다. 고장 위험을 낮추기 위해, 고른 센서들의 권장 전압은 가능한 한 서로 가까워야 한다. 어떤 부분집합의 마진을 그 부분집합에 속한 센서들의 권장 전압 중 최댓값과 최솟값의 차이로 정의한다.

전체 센서 집합은 항상 가능한 부분집합이다. 가능한 모든 부분집합 중에서 마진의 최솟값을 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어지며, 각 테스트 케이스는 하나의 빈 줄로 구분된다.

각 테스트 케이스의 첫 줄에는 문의 개수인 정수 nn (2≤n≤3502 \le n \le 350)이 주어진다. 문은 00부터 n−1n-1까지 번호가 매겨져 있다. 다음 줄에는 센서의 개수인 정수 mm (n−1≤m≤n(n−1)/2n-1 \le m \le n(n-1)/2)이 주어진다. 이어지는 mm개의 줄에는 각 센서를 나타내는 세 정수 aa, bb, ww (0≤a≤n−10 \le a \le n-1, 0≤b≤n−10 \le b \le n-1, a≠ba \ne b, 1≤w≤2151 \le w \le 2^{15})가 주어진다. 이는 센서가 담당하는 서로 다른 두 문과 그 권장 전압을 뜻한다. 같은 두 문을 담당하는 센서는 존재하지 않는다.

입력의 마지막 줄에는 00 하나가 주어진다.

출력

각 테스트 케이스마다 가능한 부분집합의 최소 마진을 한 줄에 출력하라.

예제3

  1. 예제 1

    입력
    3
    3
    0 1 220
    1 2 120
    2 0 160
    
    4
    5
    2 3 80
    1 3 80
    0 1 180
    2 1 200
    3 0 140
    
    0
    
    예상 출력
    40
    60
    
  2. 예제 2

    입력
    2
    1
    0 1 5
    0
    
    예상 출력
    0
    
  3. 예제 3

    입력
    4
    3
    0 1 10
    1 2 20
    2 3 30
    0
    
    예상 출력
    20