시계 장치

면접 대비

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

요약
각 시계가 1시부터 12시 중 하나를 가리키는 트리에서, 전선을 끊는 비용 C를 고려해 12시로 맞출 수 있는 시계들의 보수 합에서 자른 전선 수 곱하기 C를 뺀 값이 최대가 되도록 전선을 자른다.
난이도

보통10점 중 7점

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

문제

셀레스트 산에는 11번부터 NN번까지 번호가 붙은 NN개의 시계 장치가 있다. 이 시계 장치들은 N−1N-1개의 전선을 통해 모두 서로 연결되어 있다. 각 시계 장치는 11시부터 1212시까지 총 1212가지 중 하나의 시각을 가리킬 수 있다.

시계 장치에는 태엽이 있어, 전선을 통해 연결된 모든 시계 장치의 시간을 한 시간 단위로 돌릴 수 있다. 이때 1212시에서 11시간이 지나면 11시가 된다. 두 시계가 전선을 통해 연결되어 있다는 것은 하나 이상의 전선을 거쳐 한 시계에서 다른 시계까지의 경로가 존재한다는 뜻이다.

현재 시각은 1212시이다. 하지만 현재 ii번째 시계 장치는 D_iD\_i시를 가리키고 있다. 만약 ii번째 시계 장치가 1212시를 가리키게 맞출 수 있다면, 당신은 그 시계 장치를 올바르게 맞춘 보수로 금화 W_iW\_i개를 받는다.

처음에 시계 장치들은 모두 연결되어 있으므로, 모든 시계 장치들은 똑같이 돌아간다. 당신은 더 많은 시계를 올바르게 맞추기 위해 전선을 원하는 만큼 끊을 수 있다. 그러나, 하나의 전선을 끊을 때마다 받는 보수는 금화 CC개만큼 줄어든다.

당신이 보수로 받을 수 있는 금화의 최대 개수는 몇 개일까?

입력

첫 번째 줄에 시계 장치의 수 NN과 전선을 끊는 데 드는 비용 CC가 주어진다.

두 번째 줄에 현재 시계 장치가 가리키고 있는 시각 D_iD\_i가 차례대로 주어진다. (1≤i≤N1 \le i \le N)

세 번째 줄에 시계 장치를 올바르게 맞추었을 때의 보수 W_iW\_i가 차례대로 주어진다. (1≤i≤N1 \le i \le N)

그 다음 N−1N-1개의 줄에 시계 장치를 잇는 전선의 번호 U_iU\_i와 V_iV\_i가 차례로 주어진다. (1≤i≤N−11 \le i \le N - 1)

이는 U_iU\_i번 시계 장치와 V_iV\_i번 시계 장치가 전선으로 이어져 있다는 뜻이다.

출력

첫 번째 줄에 당신이 벌어들일 수 있는 금화의 최대 개수를 출력한다.

제한

  • 1≤N≤100,0001 \le N \le 100\\,000
  • 1≤C≤1091 \le C \le 10^9
  • 1≤D_i≤121 \le D\_i \le 12 (1≤i≤N1 \le i \le N)
  • 1≤W_i≤1091 \le W\_i \le 10^9 (1≤i≤N1 \le i \le N)
  • 1≤U_i,V_i≤N1 \le U\_i, V\_i \le N (1≤i≤N−11 \le i \le N - 1)

예제1

  1. 예제 1

    입력
    7 7
    11 11 9 7 7 12 4
    6 4 3 7 5 3 2
    1 2
    2 3
    3 4
    4 5
    4 6
    6 7
    
    예상 출력
    15