불
시간 제한1초메모리 제한256 MB
정점의 온도가 매일 1씩 내려가는 트리에서 모든 정점에 마법을 한 번씩 걸 수 있는 가장 늦은 출발 준비 날짜를 구합니다. 불가능하면 -1을 출력합니다.
문제
Pang은 정점이 개인 트리에 살고 있다. 정점은 으로 번호가 붙어 있고, Pang은 정점 에 있다. 각 정점에는 온도가 있다. 0일 이후 매일 아침마다 모든 정점의 온도가 씩 내려간다. 0일에는 온도가 내려가지 않는다. 매일 오후, Pang은 인접한 정점으로 이동할 수 있다. 단, 현재 정점의 온도가 양수이고 목적지 정점의 온도가 0 이상이어야 한다. 매일 저녁, 현재 정점의 온도가 0 이상이면 Pang은 그 정점의 온도를 만큼 올리는 마법을 쓸 수 있다. 인접한 두 정점 , 에 대해 Pang은 에서 로 최대 한 번, 에서 로 최대 한 번 이동할 수 있다. 이동하지 않고 현재 정점에 머물 수도 있다.
Pang은 모든 정점에서 마법을 정확히 한 번씩 쓰려고 한다. 또한 다른 정점으로 이동하기 전까지 정점 에 최대한 오래 머물려고 한다. 1일 아침 직전의 각 정점 온도가 주어졌을 때, Pang은 며칠에 출발 준비를 해야 하는가? Pang이 일에 준비하면 그날 마법을 쓸 수 있고, 일에 첫 이동을 한다. 0일에 준비하더라도 모든 정점에서 마법을 정확히 한 번씩 쓸 수 없다면 을 출력한다.
입력
첫째 줄에 두 정수 과 가 주어진다. (, ) 다음 개 줄에는 정점 와 를 잇는 간선을 나타내는 두 정수 , 가 주어진다. () 마지막 줄에는 1일 아침 직전의 정점 온도 이 주어진다. () 입력은 트리임이 보장된다.
출력
Pang이 각 정점에서 마법을 정확히 한 번씩 쓸 수 없다면 을 출력한다. 그렇지 않으면 Pang이 정점 에서 출발 준비를 해야 하는 날 를 한 정수로 출력한다. 1일은 0일 다음 날이다.