#Lutece0125. 摩托车交易

摩托车交易

Migrated from Lutece 125 摩托车交易

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description

mzry1992在打完吊针出院之后,买了辆新摩托车,开始了在周边城市的黄金运送生意。

在mzry1992生活的地方,城市之间是用双向高速公路连接的。另外,每条高速公路有一个载重上限,即在不考虑驾驶员和摩托车重量的情况下, 如果所载货物的量超过某个值,则不能驶上该条高速公路。

今年,mzry1992一共收到了来自nn个不同城市的nn份定订单,每个订单要求卖出上限为一定量的黄金,或是要求买入上限为一定量的黄金 。由于订单并不是同时发来的,为了维护生意上的名声,mzry1992不得不按照订单发来的顺序与客户进行交易。

他与第ii个客户进行交易的具体步骤是:

  1. 前往第ii个客户所在城市。当然,中途是完全允许经过其他城市的。
  2. 与第ii个客户进行交易,在此过程中他希望有限制的让交易额尽量大。具体的限制有两个
    1. 他希望与最后一个客户完成交易后,手上没有剩余黄金。
    2. 由于黄金是很贵重的物品,不能出现因为买入过多黄金而造成在以后的运送过程中不得不丢弃黄金的情况。

一开始,mzry1992位于第一个订单客户所在的城市。

现在有一个好消息,有人提供了mzry1992免费试用周边城市的列车系统的资格。具体来讲,如果mzry1992希望从AA城市到达BB城市, 且AABB城市均有列车站的话,他可以携带着黄金与摩托车从AA城市乘坐列车到BB城市,这里假定乘坐列车没有载重限制。

现在已知城市间的交通系统情况和订单情况,请帮助mzry1992计算每个向mzry1992购买黄金的客户的购买量。

Input

输入的第一行有三个整数nn, mm, qq,分别表示城市数,连通城市的高速公路数和有列车站的城市数。

接下来的一行有nn个数,每个数均不相同,且值介于11nn之间,代表订单的顺序。

第三行有nn个数,第ii个数表示ii号城市的订单的上限额bib_ibib_i为正值表示该订单为买入交易(针对mzry1992而言),上限为bib_ibib_i为负值表示该订单为卖出交易(同样针对mzry1992而言)上限为bi-b_i

接下来的mm行每行有三个数,uu, vv, ww,表示城市uu和城市vv之间有一条载重上限为ww的高速公路, 这里假定所有高速公路都是双向的,城市的序号是从11nn的。

输入的最后一行有qq个数,代表有列车站城市的序号。

对于20%20\%数据,n100n\leq 100m200m\leq 200

对于50%50\%数据,n3000n\leq 3000m6000m\leq 6000

对于100%100\%数据,1n1051\leq n\leq 10^5n1m2×105n - 1 \leq m \leq 2\times 10^50qn0\leq q\leq n0<bi<1090 < |b_i| < 10^90<w<1090 < w < 10^9, 保证任意两个城市之间是通过高速公路连通的。

Output

按照订单顺序对于每个卖出交易,输出一行,该行只有一个整数xx,表示卖出黄金的量。

Samples

3 3 2
2 3 1
-6 5 -3
1 3 5
2 3 2
2 1 6
1 3
3
2
4 4 0
1 2 3 4
5 4 -6 -1
1 2 4
2 3 100
3 4 1
4 1 4
6
1

Note

第一组样例:其中一种合法的方案是最初从22号城市买入55单位的黄金,先走第三条高速公路到11号城市,然后再坐列车到33号城市,在33号城市卖出33单位的黄金,然后乘坐列车到11城市,在11号城市卖出22单位的黄金。

第二组样例:其中一种合法的方案是最初从11号城市买入44单位的黄金,走第一条高速公路,在22号城市买入33单位的黄金,走第二条高速公路,在三城市点卖出66单位的黄金,走第三条高速公路,在44号城市卖出11单位的黄金。

Resources

SCOI 2013