#P13941. [EC Final 2019] Fire

[EC Final 2019] Fire

题目描述

Pang\textit{Pang} 住在一棵有 nn 个节点的树上。节点编号为 1,2,…,n1,2,\ldots, n,Pang\textit{Pang} 起初在节点 11。每个节点都有一个温度。从第 11 天早晨开始,每天早晨每个节点的温度都会减少 11。第 00 天温度不会减少。每天的下午,如果 Pang\textit{Pang} 当前所在的节点温度为正,且他要前往的相邻节点温度不小于 00,他可以移动到一个相邻节点。每天的晚上,如果当前节点的温度大于等于 00,Pang\textit{Pang} 可以施放魔法,使他所在节点的温度增加 kk。

对于每一对相邻节点 aa 和 bb,Pang\textit{Pang} 最多只能从 aa 走到 bb 一次(从 bb 到 aa 也最多一次)。他也可以选择不移动,留在当前节点。

Pang\textit{Pang} 想要在每个节点上恰好施放一次魔法。他还希望在出发前尽可能长时间地待在节点 11。已知第 11 天早晨之前每个节点的温度,Pang\textit{Pang} 应该在第几天准备离开?如果他在第 ii 天准备离开,他可以在这一天施放魔法,并将在第 i+1i+1 天进行第一次移动。如果即使在第 00 天准备离开也无法在每个节点上恰好施放一次魔法,输出 −1-1。

输入格式

第一行包含两个整数 nn 和 kk(2≤n≤100000,0≤k≤10000000002\le n\le 100000, 0\le k\le 1000000000)。

接下来的 n−1n-1 行,每行包含两个整数 xx 和 yy,表示节点 xx 和 yy 之间有一条边(1≤x,y≤n1\le x, y\le n)。

第 n+1n+1 行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n,表示第 ii 个节点在第 11 天早晨之前的温度(0≤ai≤10000000000\le a_i\le 1000000000)。

保证输入是一棵树结构。

输出格式

如果无法在每个节点上恰好施放一次魔法,输出 −1-1。

否则,输出一个整数 xx,表示他必须在第 xx 天从节点 11 准备出发。第 11 天是第 00 天之后的一天,依此类推。

3 1
1 2
1 3
4 3 5
1
3 1
1 2
1 3
2 10 10
-1

提示

由 ChatGPT 4.1 翻译