겨울 숲과 마법 불꽃
시간 제한1.5초메모리 제한512 MB
루트 마을에서 가장 먼 마을까지의 거리를 간선 길이가 1 아래로 내려가지 않는 조건에서 마법 예산 B 안에서 최대한 줄인 값을 질의마다 구합니다.
문제
겨울 숲의 개 마을은 개의 무방향 도로로 연결되어 있다. 모든 도로의 길이는 양의 정수이며, 도로망은 트리 구조를 이루고 있다.
첫 번째 마을에는 마법의 불꽃이 있고, 겨울 숲 사람들은 이 불꽃의 온기로 살아간다. 불꽃이 있는 마을에서 다른 마을까지의 거리는 그 마을까지 가는 경로에 있는 도로 길이의 합이다.
가장 강한 마법사이기도 한 숲의 왕은 마법을 써서 도로의 길이를 줄일 수 있다. 도로마다 양의 정수 만큼 마법력을 소모하면 그 도로의 길이를 만큼 줄일 수 있다. 다만 마법력을 아무리 많이 써도 도로의 길이를 미만으로 줄일 수는 없다.
왕은 불꽃이 있는 마을에서 가장 먼 마을까지의 거리를 최대한 줄이고 싶어 한다. 마법력을 최대 사용한다면 이 거리를 어디까지 줄일 수 있는가?
입력
첫 번째 줄에 마을의 수 ()이 주어진다.
다음 개의 줄에 각 도로의 양끝 마을 번호 , (, )와 도로의 길이 ()가 주어진다.
다음 줄에 마법력 쿼리의 개수 ()가 주어진다.
다음 개의 줄에 각 쿼리의 마법력 ()가 주어진다.
출력
각 쿼리마다, 주어진 마법력을 사용할 수 있을 때 불꽃이 있는 마을과 가장 먼 마을 사이 거리의 최솟값을 한 줄에 하나씩 출력한다.