만드는 중입니다

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

배송

면접 대비

시간 제한2초메모리 제한512 MB

요약
창고가 나무 구조로 연결되고 도로 길이가 주어질 때, 한 번 충전으로 최대 T km를 달리는 트럭이 S에서 F까지 가는 데 필요한 최소 정차 횟수를 구합니다.
난이도

보통10점 중 6점

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

문제

샘은 트럭 운전사로 일하며 여러 창고 사이를 오가며 물품을 배송한다. 창고는 모두 N개이다. 일부 창고는 도로로 연결되어 있으며, 임의의 두 창고 사이를 잇는 길은 정확히 하나뿐이다. 그 길은 중간에 다른 창고를 여러 개 지날 수도 있다.

샘은 배터리로 움직이는 여러 트럭을 사용한다. 각 트럭에는 접이식 태양광 패널이 있어서, 트럭이 멈춰 있을 때만 배터리를 충전할 수 있다. 한 창고에서 다른 창고로 이동하는 동안 샘은 원하는 지점에서 멈춰 배터리를 충전할 수 있다. 배터리가 방전되면 트럭은 움직일 수 없다. 또한 샘은 보안상의 이유로 지나가는 창고마다 반드시 멈춰야 한다. 창고에 멈출 때에도 배터리를 충전할 수 있다.

샘은 자주 멈추는 것을 싫어하므로, 각 경로마다 필요한 최소 정차 횟수를 구해 달라고 부탁했다. 이 횟수에는 충전을 위한 정차와 창고에서의 정차가 모두 포함되며, 출발 창고와 도착 창고(짐을 싣고 내리는 곳)에서의 정차도 포함된다.

입력

첫째 줄에 창고의 수 N과 샘이 이동하는 경로의 수 Q가 주어진다. 여기서 1≤N,Q≤100,0001 \le N, Q \le 100{,}000이다. 이어지는 N-1개의 줄에는 창고 사이의 도로가 주어진다. 각 줄에는 세 정수 U, V, D가 있다. U와 V는 창고의 번호이며 1≤U,V≤N1 \le U, V \le N이다. D는 창고 U와 V 사이 도로의 길이(킬로미터)이며 1≤D≤20,0001 \le D \le 20{,}000이다. 이어지는 Q개의 줄에는 샘의 경로가 주어진다. 각 줄에는 세 정수 S, F, T가 있다. S와 F는 경로의 출발 창고와 도착 창고의 번호이며 1≤S,F≤N1 \le S, F \le N이고 S≠FS \neq F이다. T는 이 경로에서 사용하는 트럭의 배터리 용량으로, 완전히 충전했을 때 트럭이 갈 수 있는 거리(킬로미터)이다. 여기서 1≤T≤20,0001 \le T \le 20{,}000이다.

출력

Q개의 경로 각각에 대해, 그 경로에서 필요한 최소 정차 횟수를 한 줄에 출력한다.

예제2

  1. 예제 1

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

    입력
    4 3
    1 2 5
    2 3 10
    3 4 20
    1 4 20
    1 4 10
    1 4 5
    
    예상 출력
    4
    5
    8