U287347 E.NANA与最后的旅程

题目描述

在假期的最后,NANA决定尽情地在自己想去的景点中游玩。 已知NANA有$n$个想去的景点,从$1$到$n$编号,这些景点恰好有$n-1$条双向道路链接,同时恰好满足景点之间都存在唯一路径。 为了节省成本,NANA报名参加了一个旅行团。这个旅行团有$m$个旅行者,从$1$到$m$编号。 最初的时候,编号为$i$的旅行者位于$a_i$城市。每个旅行者都有一个精力值,初始时精力值为$0$。 为了刺激消费,某个景点会不定期地举办活动,当一个景点举办$a$级活动时,任何当前在这个景点的旅行者都会得到$a$精力值。 旅行者们经常会在景点之间旅游,这会消耗他们的精力值,具体地说,如果旅行者的起点终点之间隔了$k$条道路,那么旅行者会消耗$k$精力值。注意:不同的旅行者是可以呆在同一景点的。 现在,有$q$个事件顺序发生,对每一个事件,需要你进行一些操作,详情请看输入格式。

输入格式

第一行三个整数$n,m,q$$(2 ≤ n ≤ 200 000, 1 ≤ m, q ≤ 200 000)$表示有$n$个景点,$m$个旅行者,$q$个事件发生。 第二行$m$个整数$a_1,a_2,a_3.....a_m$,$a_i$表示第$i$个旅行者的初始在景点$a_i$。 接下来$n-1$行,每行两个整数$v_i,w_i$,表示景点$v_i,w_i$之间存在一条双向边。 接下来$q$行表示将要发生的事件,事件分为三类,具体输入形式如下: 1.首先一个字符$'t'$,接下来三个整数$f_i$,$g_i$,$c_i$ $(1\leq f_i\leq g_i \leq m,1\leq c_i\leq n)$,表示标号在$f_i$到$g_i$之间的所有旅行者都移动到了景点$c_i$,当然,他们付出了各自应有的精力值消耗。 2.首先一个字符$'e'$,接下来两个整数$c_i$,$d_i$$(1\leq c_i\leq b,0 \leq d_i\leq 10^9)$,表示在景点$c_i$举办了$d_i$级别的活动。 当然,所有当前在$c_i$景点的旅行者精力值都会加上$d_i$。 3.首先一个字符$'q'$,接下来一个整数$v_i$$(1\leq v_i\leq m)$,询问编号为$v_i$的旅行者当前精力值是多少。

输出格式

对于每一个$q$事件,输出对应编号的旅行者当前精力值。

说明/提示

保证$2 ≤ n ≤ 200 000, 1 ≤ m, q ≤ 200 000$。