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

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

수로 넓히기

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

요약
가중 무방향 그래프에서 모든 정점 쌍이 연결되도록 너비 k 미만인 간선을 최소 몇 개나 넓혀야 하는지 구한다.
난이도

보통10점 중 6점

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

문제

워터랜드(Waterland) 나라에는 11번부터 nn번까지 번호가 매겨진 nn개의 호수와, 호수들을 잇는 mm개의 수로가 있다. 각 수로에는 폭(미터 단위)이 정해져 있으며, 수로는 양방향으로 항해할 수 있다. 폭이 11미터인 배는 11번 호수에서 출발하여 모든 호수에 도달할 수 있음이 보장된다.

폭이 kk미터인 배가 임의의 두 호수 사이를 오갈 수 있도록 하려면 넓혀야 하는 수로의 최소 개수를 구하는 프로그램을 작성하라. 배는 자신의 폭이 수로의 폭보다 작거나 같을 때에만 그 수로를 통과할 수 있다. 즉, 폭이 ww인 수로는 k≤wk \le w일 때 통과할 수 있다. 수로 하나를 넓히면 그 수로의 폭은 kk 이상이 된다.

입력

첫째 줄에 두 정수 nn과 mm이 주어진다 (1<n≤10001 < n \le 1000, 1<m≤1000001 < m \le 100000).

다음 mm개의 줄에는 각각 세 정수 ii, jj, ww가 주어지며, 이는 호수 ii와 jj 사이에 폭이 ww인 수로가 있음을 뜻한다 (1≤i,j≤n1 \le i, j \le n, 1≤w≤2001 \le w \le 200).

마지막 줄에는 정수 kk가 주어진다 (1≤k≤2001 \le k \le 200).

출력

넓혀야 하는 수로의 최소 개수를 한 정수로 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    6 9
    1 6 1
    1 2 2
    1 4 3
    2 3 3
    2 5 2
    3 4 4
    3 6 2
    4 5 5
    5 6 4
    4
    
    예상 출력
    2
    
  2. 예제 2

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

    입력
    4 3
    1 2 1
    2 3 1
    3 4 1
    2
    
    예상 출력
    3