| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1.5 초 | 512 MB | 146 | 42 | 35 | 35.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}$)
각각의 쿼리에 대해, 쿼리에서 주어진 마법력을 사용할 수 있을 때 불꽃이 있는 마을과 가장 먼 마을과의 거리의 최소값을 출력한다.
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
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번