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

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

경주

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

요약
가중치가 있는 트리에서 총 길이가 정확히 K인 경로 중 간선 수가 가장 적은 것을 찾고, 없으면 -1을 출력한다.
난이도

어려움10점 중 8점

유형
트리, 분할 정복, DFS, 이분 탐색
정답자
아직 제출이 없습니다

문제

경주대회 IOR을 위해 가장 적합한 경주 코스를 찾으려 한다.

한 지역에 NN개의 도시가 있고, N−1N-1개의 고속도로가 이 도시들을 연결한다. 각 고속도로는 양방향이며 서로 다른 두 도시를 연결하고, 그 길이는 킬로미터 단위의 정수이다. 임의의 두 도시는 정확히 하나의 경로로만 연결된다. 즉, 도시와 고속도로는 하나의 트리를 이룬다.

경주 코스는 서로 다른 출발 도시와 도착 도시를 잇는 경로이며, 전체 길이가 정확히 KK킬로미터여야 한다. 충돌을 막기 위해 어떤 고속도로도 두 번 이상 사용하지 않는다(따라서 어떤 도시도 두 번 이상 방문하지 않는다). 트리에서 두 도시를 잇는 경로는 유일하므로 이 조건은 자동으로 만족된다.

교통 체증을 줄이기 위해, 전체 길이가 정확히 KK인 경로들 중에서 사용하는 고속도로(간선)의 수가 가장 적은 경로를 찾아야 한다.

도시는 00번부터 N−1N-1번까지 번호가 매겨진다. 고속도로가 잇는 도시 번호는 00 이상 N−1N-1 이하이고, 고속도로의 길이는 0 이상 1,000,000 이하의 정수이다. 모든 도시는 서로 연결되어 있다.

전체 길이가 정확히 KK인 경로 중에서 고속도로 수가 가장 적은 경로의 고속도로 수를 출력한다. 그런 경로가 존재하지 않으면 −1-1을 출력한다.

입력

첫째 줄에 도시의 수 NN과 경주 코스의 길이 KK가 공백으로 구분되어 주어진다.

이어지는 N−1N-1개의 줄에는 각 고속도로의 정보가 주어진다. 각 줄에는 세 정수 uu, vv, ww가 주어지며, 이는 도시 uu와 도시 vv를 잇는 길이 ww의 고속도로를 뜻한다.

출력

전체 길이가 정확히 KK인 경로 중 고속도로 수가 가장 적은 경로의 고속도로 수를 한 줄에 출력한다. 그런 경로가 없으면 −1-1을 출력한다.

예제3

  1. 예제 1

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

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

    입력
    11 12
    0 1 3
    0 2 4
    2 3 5
    3 4 4
    4 5 6
    0 6 3
    6 7 2
    6 8 5
    8 9 6
    8 10 7
    
    예상 출력
    2