만드는 중입니다

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

고추 화환

면접 대비

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

요약
각 정점에 음이 아닌 가중치가 있고 상한 k가 주어진 트리에서, 잘라낸 각 조각의 가중치 합이 k 이하가 되도록 잘라야 하는 간선 수의 최솟값을 구한다.
난이도

보통10점 중 6점

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

문제

크레쇼는 동네 농장에서 매운 고추를 한 묶음 샀다. 고추는 끈으로 서로 엮여 이른바 화환을 이룬다. 이 문제에서 화환은 고추 nn개와 끈 n−1n-1개로 이루어진다. 끈 하나는 서로 다른 고추 두 개를 잇고, 화환 안의 어떤 두 고추도 끈을 따라 직접 또는 간접적으로 연결되어 있다. 즉 고추와 끈은 트리를 이룬다. 크레쇼는 가위질 한 번으로 끈 하나를 잘라 화환 하나를 더 작은 화환 두 개로 나눌 수 있고, 나뉜 화환을 같은 방법으로 다시 나눌 수도 있다. 아무것과도 연결되지 않은 고추 하나도 화환이다.

그림 1: 처음 두 예제의 화환과 최적의 절단.

고추 하나의 맵기는 스코빌 척도로 재며 음이 아닌 정수로 나타낸다. 화환의 맵기는 그 화환에 든 고추의 맵기를 모두 더한 값이다. 크레쇼는 정보 올림피아드가 끝난 뒤 고등학생들의 점심을 맵게 만들고 싶은데, 평범한 고등학생은 맵기가 kk 이하인 화환까지는 의사와 청소년 담당 변호사를 부르지 않고 먹을 수 있다는 사실을 안다.

처음 화환을 맵기가 모두 kk 이하인 화환들로 나누는 데 필요한 최소 절단 횟수를 구하시오.

입력

첫째 줄에 고추의 수 nn과 화환 하나에 허용되는 최대 맵기 kk가 주어진다. 고추에는 1부터 nn까지 번호가 붙어 있다. 둘째 줄에 정수 nn개 h1,h2,…,hnh_1, h_2, \ldots, h_n이 주어진다. hjh_j는 고추 jj의 맵기다. 이어지는 n−1n-1개 줄에는 각각 서로 다른 두 정수 xx, yy (1≤x,y≤n1 \le x, y \le n)가 주어진다. 처음 화환에서 고추 xx와 고추 yy가 끈 하나로 직접 연결되어 있다는 뜻이다. 고추와 끈은 문제에서 설명한 대로 트리를 이룬다.

출력

최소 절단 횟수를 출력한다.

제한

모든 서브태스크에서 n≥2n \ge 2이고 0≤h1,h2,…,hn≤k≤3 000 0000 \le h_1, h_2, \ldots, h_n \le k \le 3\,000\,000이다.

예제5

  1. 예제 1

    입력
    5 5
    1 2 3 4 5
    1 2
    2 3
    3 4
    4 5
    
    예상 출력
    3
    
  2. 예제 2

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

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

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

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