匹配
题号:NC238768
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

你有n个红色的小球,编号为1n,还有n个蓝色的小球,编号为2n
你还有m个容器,你希望把这些小球放到容器里,规则如下:
1.可以有小球不被放到容器里,但是编号为i 的红球和编号为 的蓝球必须同时被放或者不放(可以理解成他们俩的状态必须相同)。
2.每个容器的放入的小球数目不得超过容量上限,第i个容器的上限为a_i。如果容器 i 中放入了 j 个小球,则你必须支付 的代价。
3.有k条规定,第i条规定形如“编号为x_i的球可以放入编号为y_i的容器里”,你只能按照规定放入小球。也就是说,如果球x放入了容器y,则必有一条规定描述了编号为x的球可以放入编号为y的容器中。
4.每个容器剩余的容量必须为偶数。
你希望在放入尽量多的小球情况下,支付的代价尽量少。输出最多能放入的小球数和在这个情况下最小的代价。

输入描述:

第一行n,m,k
接下来一行m个整数a_i,代表第i个容器的上限。
接下来一行m个整数v_i,代表第i个容器每放入一个小球所需的代价。
接下来k行,每行两个整数,代表一条规定。

输出描述:

一行两个整数,第一个整数代表最多有几个小球被放入,第二个整数表示在有尽可能多的小球被放入的情况下,最小的代价。
保证至少存在一组合法方案。。
示例1

输入

复制
2 2 4
2 2
3 4
2 2
1 2
4 1
3 1

输出

复制
4 14
示例2

输入

复制
2 2 3
2 2
3 4
1 2
3 1
3 2

输出

复制
2 8
示例3

输入

复制
1 2 4
3 3
1 2
1 1
1 2
2 1
2 2

输出

复制
2 3