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

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

불

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

요약
정점의 온도가 매일 1씩 내려가는 트리에서 모든 정점에 마법을 한 번씩 걸 수 있는 가장 늦은 출발 준비 날짜를 구합니다. 불가능하면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
이분 탐색, 트리, DFS, 그리디
정답자
아직 제출이 없습니다

문제

Pang은 정점이 nn개인 트리에 살고 있다. 정점은 1,2,…,n1, 2, \ldots, n으로 번호가 붙어 있고, Pang은 정점 11에 있다. 각 정점에는 온도가 있다. 0일 이후 매일 아침마다 모든 정점의 온도가 11씩 내려간다. 0일에는 온도가 내려가지 않는다. 매일 오후, Pang은 인접한 정점으로 이동할 수 있다. 단, 현재 정점의 온도가 양수이고 목적지 정점의 온도가 0 이상이어야 한다. 매일 저녁, 현재 정점의 온도가 0 이상이면 Pang은 그 정점의 온도를 kk만큼 올리는 마법을 쓸 수 있다. 인접한 두 정점 aa, bb에 대해 Pang은 aa에서 bb로 최대 한 번, bb에서 aa로 최대 한 번 이동할 수 있다. 이동하지 않고 현재 정점에 머물 수도 있다.

Pang은 모든 정점에서 마법을 정확히 한 번씩 쓰려고 한다. 또한 다른 정점으로 이동하기 전까지 정점 11에 최대한 오래 머물려고 한다. 1일 아침 직전의 각 정점 온도가 주어졌을 때, Pang은 며칠에 출발 준비를 해야 하는가? Pang이 ii일에 준비하면 그날 마법을 쓸 수 있고, i+1i+1일에 첫 이동을 한다. 0일에 준비하더라도 모든 정점에서 마법을 정확히 한 번씩 쓸 수 없다면 −1-1을 출력한다.

입력

첫째 줄에 두 정수 nn과 kk가 주어진다. (2≤n≤1000002 \le n \le 100000, 0≤k≤10000000000 \le k \le 1000000000) 다음 n−1n-1개 줄에는 정점 xx와 yy를 잇는 간선을 나타내는 두 정수 xx, yy가 주어진다. (1≤x,y≤n1 \le x, y \le n) 마지막 줄에는 1일 아침 직전의 정점 ii 온도 a1,a2,…,ana_1, a_2, \ldots, a_n이 주어진다. (0≤ai≤10000000000 \le a_i \le 1000000000) 입력은 트리임이 보장된다.

출력

Pang이 각 정점에서 마법을 정확히 한 번씩 쓸 수 없다면 −1-1을 출력한다. 그렇지 않으면 Pang이 정점 11에서 출발 준비를 해야 하는 날 xx를 한 정수로 출력한다. 1일은 0일 다음 날이다.

예제2

  1. 예제 1

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

    입력
    3 1
    1 2
    1 3
    2 10 10
    
    예상 출력
    -1