2248: 电视网络

内存限制:128 MB 时间限制:1.000 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:22 通过:4

题目描述

    电视网络计划广播一个重要的足球比赛。他们的网络传输关系可以认为是一棵树。树的根即为广播比赛的电视台,叶子节点表示网络用户,其他节点表示中转站。
    从一个节点向另一个节点传输广播的费用是给定的。总的传输费用为所有传输广播的边的费用之和。
    每个用户愿意支付一定的报酬来观看足球比赛,电视网络决定是否给其提供广播信号。
    写一个程序计算在电视网络不亏本的前提下(即看到比赛的用户的报酬之和-总的传输费用>=0),最多可以让多少人看到足球比赛。 

输入格式

第一行包含两个整数N,M(2<=N<=3000,1<=M<=N-1)分别表示总的节点数和叶子节点数。
    根节点的编号为1,叶子节点的编号为N-M+1~N,其他节点的编号为2~N-M。
    接下来N-M行,每行按照如下格式输入:K A1 C1 A2 C2……AK CK
    表示一个非叶子节点(中转站或电视台)能向K个节点(中转站或用户)传输广播,每一个数对A,C分别表示接收的节点编号和传输的费用。
    最后一行包含M个整数表示每个人愿意支付的报酬。

输出格式

一行一个整数,表示在电视网络不亏本的前提下最多可以让多少人看到足球比赛。

输入样例 复制

9 6
3 2 2 3 2 9 3
2 4 2 5 2
3 6 2 7 2 8 2
4 3 3 3 1 1

输出样例 复制

5