Logo
(追記) (追記ここまで)

26221번 - 겨울 숲과 마법 불꽃

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1.5 초 512 MB146423535.000%

문제

겨울 숲 속의 $N$개의 마을은 $N - 1$개의 무방향 도로로 연결되어 있다. 모든 도로의 길이는 양의 정수이며 도로망은 트리 구조를 이루고 있다.

첫 번째 마을에는 마법의 불꽃이 존재해 겨울 숲의 사람들은 이 불꽃에서 나오는 온기로 살아간다. 불꽃이 있는 마을에서 다른 마을까지의 거리는 그 마을까지의 경로 상에 있는 도로의 길이의 합이다.

가장 강대한 마법사이기도 한 숲의 왕은 마법의 힘을 사용해 도로의 길이를 줄일 수 있다. 각 도로에 대해 왕의 마법력을 양의 정수 $K$만큼 소모하면 도로의 길이를 $K$만큼 줄일 수 있다. 하지만 마법력을 아무리 많이 써도 도로의 길이를 1ドル$ 미만으로 줄일 수는 없다.

왕은 불꽃이 있는 마을부터 가장 먼 마을까지의 거리를 최대한 줄이고 싶어한다. 마법력을 최대 $B$ 사용한다면 이를 어디까지 줄일 수 있는가?

입력

첫 번째 줄에 마을의 수 $N$ (2ドル \leq N \leq 200,000$)이 주어진다.

다음 $N - 1$개의 줄에 각 도로의 양끝 마을의 번호 $A_{j},ドル $B_{j}$ (1ドル \leq A_{j}, B_{j} \leq N,ドル $A_{j} \neq B_{j}$)와 그 도로의 길이 $W_{j}$ (1ドル \leq W_{j} \leq 10^{9}$)가 주어진다.

다음 줄에 마법력에 대한 쿼리의 개수 $Q$가 주어진다. (1ドル \leq Q \leq 200,000$)

다음 $Q$개의 줄에 각 쿼리에서의 마법력 $B_{i}$가 주어진다. (0ドル \leq B_{i} \leq 2 \times 10^{14}$)

출력

각각의 쿼리에 대해, 쿼리에서 주어진 마법력을 사용할 수 있을 때 불꽃이 있는 마을과 가장 먼 마을과의 거리의 최소값을 출력한다.

제한

예제 입력 1

8
1 2 7
2 5 3
1 3 3
3 6 2
6 8 4
3 7 8
1 4 12
3
1
40
6

예제 출력 1

11
3
9

위의 그림은 예제를 나타낸다.

마법력 1을 사용한다면, 마을 1과 마을 4를 잇는 도로의 길이를 1 줄였을 경우, 마을 4와 마을 1의 거리가 11이 되고, 이 마을이 불꽃이 있는 마을과 가장 멀다.

마법력 40을 사용한다면, 모든 도로의 길이를 1까지 줄일 수 있고, 이 때 마을 8과 마을 1의 거리가 3이 된다.

마법력 6을 사용한다면, 마을 1과 마을 4를 잇는 도로의 길이를 3 줄이고, 마을 3과 마을 7을 잇는 도로의 길이를 2 줄이고, 마을 1과 마을 2를 잇는 도로의 길이를 1 줄이면, 마을 5/4/7/8과 마을 1의 거리가 9가 되고, 마을 1까지의 거리가 10 이상인 마을은 없도록 할 수 있다. 마법력 6을 사용해서 다른 마을에서 마을 1까지의 거리의 최대값을 8 이하로 만드는 방법은 없다.

힌트

출처

Contest > BOJ User Contest > 겨울 숲의 초대 > 겨울 숲의 초대 G번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /