[TJOI2015]旅游
题号:NC20449
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

为了提高智商,ZJY准备去往一个新世界去旅游。这个世界的城市布局像一棵树。每两座城市之间只有一条路径可 以互达。每座城市都有一种宝石,有一定的价格。ZJY为了赚取最高利益,她会选择从A城市买入再转手卖到B城市 。由于ZJY买宝石时经常卖萌,因而凡是ZJY路过的城市,这座城市的宝石价格会上涨。让我们来算算ZJY旅游完之 后能够赚取的最大利润。(如a城市宝石价格为v,则ZJY出售价格也为v)

输入描述:

第一行输入一个正整数N,表示城市个数。
接下来一行输入N个正整数表示每座城市宝石的最初价格p,每个宝石的初始价格不超过100。
第三行开始连续输入N-1行,每行有两个数字x和y。表示x城市和y城市有一条路径。城市编号从1开始。
下一行输入一个整数Q,表示询问次数。
接下来Q行,每行输入三个正整数a,b,v,表示ZJY从a旅游到b,城市宝石上涨v。
1 ≤ N ≤ 50000, 1 ≤ Q ≤ 50000

输出描述:

对于每次询问,输出ZJY可能获得的最大利润,如果亏本则输出0。
示例1

输入

复制
3
1 2 3
1 2
2 3
2
1 2 100
1 3 100

输出

复制
1
1

备注:

对于30%的数据,保证
对于100%的数据,保证 ,在任何时刻任何城市的宝石价格都不超过