集训队的依赖关系
题号:NC200584
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

    众所周知,SMU算法竞赛团队存在着极其复杂的内部依赖关♂系,这个依赖关系体现在每次决定是否出去吃饭的时候。某个周六中午,大家相约一起去吃自助,却忘记叫队长一起去了。下午训练结束了到了吃饭的时间,队长问大家一句:吃饭吗?大家刚吃完自助很饱,其实都不想去,但是又不好意思直接说出口,于是开始耍花招:磊子哥说,杰去我就去;琛说,佳佳文去我就去;玮说,琛去我就去……

    为了不让队长生气,每个人至多只能依赖一个人,但是一个人可以被多个人依赖。

    在队长的心里,和每个人去吃饭都有一个期待值,一个人和队长一起去吃饭了,队长就能得到对应的期待值。而劝导一个人去吃饭会有一定的花费,比如杰是一个富 有 原 则 性的人,除非你给他5元或5元以上的钱,否则他是绝对不会一起去的。现在队长有S元钱,告诉你队长对于每个人的期待值以及劝导他去吃饭的最小花费,队长想知道在花费不超过S元的前提下,他能获得的最大期待值。值得注意的是,队长要劝导一个人去吃饭,必须先劝导他依赖的人去吃饭(如果有的话)。(换言之,u依赖v,要劝导u去吃饭,必须先劝导v)。另外,如果依赖关系构成了一个环(比如1依赖2,2依赖3,3依赖1),队长会感觉自己受到了侮辱,所以不会劝导这个环的任何一个人


输入描述:

第一行两个整数,分别代表集训队的人数,队长的总钱数,以及集训队的依赖关系数。
第二行n个整数val_1, val_2, ..., val_n,其中代表第i个人的期待值
第三行n个整数cost_1, cost_2, ..., cost_n,其中代表劝导第i个人的最小花费
第四行至第m+3行,每行两个整数u v, 代表第u个人依赖第v个人。   保证每个人至多依赖一个人。

输出描述:

输出一个整数,表示队长在花费不超过S的情况下能获得的最大期待值
示例1

输入

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

输出

复制
3

说明

三个人都可以劝导,获得的总期待值就是3
示例2

输入

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

输出

复制
0

说明

构成环啦,都不会劝导,所以答案是0