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

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

왕실 세금

시간 제한1초메모리 제한1024 MB

요약
각 도시에 세금 금이 있고 용량 C인 마차가 있을 때, 모든 금을 수도 금고로 모으기 위한 최소 이동 거리를 구한다.
난이도

어려움10점 중 8점

유형
트리, 동적 계획법, DFS, 그리디
정답자
아직 제출이 없습니다

문제

Nlogônia 왕국은 부유하고 백성은 배울 만큼 배웠으며 살림도 넉넉하지만, 세금 문제에서만큼은 왕이 가혹하다. 해마다 연말이 되면 왕국의 각 도시는 정해진 양의 금을 세금으로 내야 한다. 세금을 걷을 때가 되면 왕은 왕실 마차를 보내 왕국의 도로를 따라 내야 할 금을 거둬들인다.

각 도로는 서로 다른 두 도시를 잇고 양쪽 방향으로 다닐 수 있다. 도로망은 어느 도시에서 어느 도시로든 (중간 도시를 거쳐서라도) 갈 수 있게 이어져 있고, 서로 다른 두 도시를 잇는 경로는 하나뿐이다.

모든 도시에는 세금으로 걷은 금을 보관하는 왕실 금고가 하나씩 있다. 금고는 대단히 커서 왕국 전체가 내야 할 금을 전부 넣어도 자리가 남는다. 마차는 수도에서 출발해 도로를 따라 도시를 돌며 그 도시가 내야 할 금을 싣는다. 필요하면 이미 걷은 금의 일부를 아무 왕실 금고에나 잠시 맡겨 둘 수 있다. 수거가 끝난 시점에는 모든 도시가 낸 금이 전부 수도의 금고에 있어야 한다.

각 도시가 내야 할 금의 양(kg), 도로의 목록과 각 도로의 길이(km), 왕실 마차의 적재 용량(kg)이 주어진다. 마차가 내야 할 금을 모두 거두려면 최소 몇 km를 달려야 하는지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 도시의 수 NN과 마차의 적재 용량 CC가 주어진다 (2≤N≤1042 \le N \le 10^4, 1≤C≤1001 \le C \le 100). 수도는 1번 도시이고 나머지 도시에는 2번부터 NN번까지 번호가 붙는다.

둘째 줄에 NN개의 정수 E1,E2,…,ENE_1, E_2, \dots, E_N이 주어진다. EiE_i는 ii번 도시가 내야 할 금의 양이며 단위는 kg이다 (0≤Ei≤1000 \le E_i \le 100).

이어지는 N−1N-1개의 줄에 각각 세 정수 AA, BB, LL이 주어진다. 이는 AA번 도시와 BB번 도시를 잇는 길이 LL km의 도로가 있다는 뜻이다 (1≤A,B≤N1 \le A, B \le N, A≠BA \ne B, 1≤L≤1001 \le L \le 100).

출력

마차가 내야 할 금을 모두 거두기 위해 달려야 하는 최소 거리를 km 단위 정수 하나로 첫째 줄에 출력한다.

예제3

  1. 예제 1

    입력
    6 10
    0 10 10 10 10 10
    1 4 7
    5 1 2
    3 5 3
    2 5 2
    6 5 2
    
    예상 출력
    44
    
  2. 예제 2

    입력
    3 10
    10 10 12
    1 2 5
    2 3 7
    
    예상 출력
    58
    
  3. 예제 3

    입력
    5 9
    5 2 6 3 6
    1 2 1
    2 3 1
    2 4 1
    2 5 1
    
    예상 출력
    10