만드는 중입니다

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

꽃가루를 지켜라!

면접 대비

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

요약
나무 모양으로 연결된 꽃들에서 인접한 두 꽃을 동시에 고르지 않고, 벌의 총합이 S 이하가 되도록 수분 능력의 합을 최대로 만드는 값을 구합니다.
난이도

보통10점 중 5점

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

문제

플라리아나 꽃과 호박벌은 열대우림에서 가장 좋은 협력 관계 중 하나를 이룬다. 봄이 되면 여러 꽃이 피고 꽃가루를 만들기 시작한다. 꽃들 사이에는 특별한 덩굴이 다리처럼 이어져 있어서, 한 꽃에서 다른 꽃으로 가는 길은 정확히 하나뿐이다.

각 꽃에는 벌 가족이 살고 있다. 이 가족은 그 꽃에 닿은 모든 덩굴을 지킨다. 그래서 덩굴 하나는 두 가족이 함께 지킨다. 꽃 kk의 가족은 벌이 sks_k마리이고 수분 능력은 pkp_k이다.

어느 날 벌 정찰병이 언덕 너머에 새로운 꽃밭이 생겼다고 알렸다. 그곳의 수분을 도울 벌 무리가 필요하다. 벌 여왕인 당신은 원정에 보낼 가족들을 고른다. 모든 덩굴에 대해, 그 덩굴을 지키는 두 가족 중 적어도 한 가족은 남아 있어야 덩굴이 계속 보호된다. 원정에 가는 가족의 벌은 모두 떠난다. 원정에 보낼 벌은 전체 SS마리를 넘을 수 없다. 원정에 보낼 수 있는 수분 능력 합의 최댓값을 구하라.

입력

첫 줄에 꽃의 개수 NN (1≤N≤3001 \leq N \leq 300)과 보낼 수 있는 벌의 최대 수 SS (1≤S≤3001 \leq S \leq 300)이 주어진다. 꽃은 1번부터 NN번까지 번호가 매겨져 있다. 다음 NN개의 줄에는 각 가족의 정보가 주어진다. 각 줄에는 가족의 벌 수 sks_k (1≤sk≤3001 \leq s_k \leq 300)와 수분 능력 pkp_k (1≤pk≤1001 \leq p_k \leq 100)가 있다. 마지막 N−1N-1개의 줄에는 덩굴 정보가 주어진다. 각 줄에는 서로 다른 두 정수 uu (1≤u≤N1 \leq u \leq N)와 vv (1≤v≤N1 \leq v \leq N)가 있으며, 꽃 uu와 꽃 vv 사이에 덩굴이 있다는 뜻이다.

출력

원정에 보낼 수 있는 수분 능력 합의 최댓값을 출력한다.

예제2

  1. 예제 1

    입력
    5 10
    2 1
    2 2
    2 4
    2 8
    2 16
    1 2
    2 3
    3 4
    4 5
    
    예상 출력
    21
    
  2. 예제 2

    입력
    7 10
    1 7
    2 4
    5 18
    2 3
    3 12
    9 20
    2 8
    1 2
    1 3
    2 4
    2 5
    3 6
    3 7
    
    예상 출력
    33