#2616. 电力网络

电力网络

Description

一个电力网络由通过电力传输线连接的节点(发电站、用户和中转站)组成。对于节点uu ,其他节点为其提供的功率s(u)0s (u )≥0,生产功率0p(u)pmax(u)0≤p (u )≤p_{max} (u ),消耗功率0c(u)min(s(u),cmax(u))0≤c (u)≤min(s (u ), c_{max} (u )),传递功率d(u)=s(u)+p(u)c(u)d (u )=s (u )+p (u )-c (u)。任何发电站都c(u)=0c (u )=0,任何用户都p(u)=0p (u )=0,任何中转站都p(u)=c(u)=0p (u)=c (u )=0。在网络中,从节点uu 到节点vv 的输电线(u,v)(u , v )最多可以有一条,从u 到v 的传输功率0l(u,v)lmax(u,v)0≤l (u , v )≤l _{max} (u , v )。设Con=uc(u)Con=∑_uc (u )为网络中的消耗功率,请计算ConCon的最大值。

image

图中发电站uu 的标签x/yx /y 表示p(u)=xp (u )=xpmax(u)=yp_{max} (u )=y ,用户uu的标签x/yx /y 表示c(u)=xc (u )=xcmax(u)=yc_{max} (u) =y ,输电线(u,v)(u , v )的标签x/yx/y 表示l(u,v)=xl (u , v )=x lmax(u,v)=yl_{max} (u , v )=y ,则Con=6Con=6

注意:网络还有其他可能的状态,但ConCon的值不可以超过66

Format

Input

输入包含多个数据集。

每个数据集都以4个整数为开头:0n1000≤n ≤100(节点)、0npn0≤np ≤n (发电站)、0ncn0≤nc ≤n (用户)和0mn20≤m ≤n^2 (输电线)。

接下来输入mm 个三元组(u,v)z(u , v )z ,其中uu vv 是节点编号(从00开始),0z10000≤z ≤1000lmax(u,v)l_{max} (u , v )的值。

接着输入npnp 个二元组(u)z(u )z ,其中uu 是发电站编号,zzpmax(u)p_{max} (u )的值, 0z100000≤z ≤10000。数据集以ncnc 个二元组(u)z(u )z结尾,其中uu 是用户编 号,zzcmax(u)c_{max} (u )的值,0z100000≤z≤10000

所有输入的数字都是整数。除了(u,v)z(u, v )z 三元组和(u)z(u )z 二元组不包含空格,在输入中都可以自由出现空格。

Output

对每个数据集都单行输出在网络中消耗的最大功率。

Samples

2 1 1 2 (0,1)20 (1,0)10 (0)15 (1)20
7 2 3 13 (0,0)1 (0,1)2 (0,2)5 (1,0)1 (1,2)8 (2,3)1 (2,4)7
         (3,5)2 (3,6)5 (4,2)7 (4,3)5 (4,5)1 (6,0)5
         (0)5 (1)2 (3)2 (4)1 (5)4
15
6

来源

POJ1459