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

个红色的小球,编号为

至

,还有

个蓝色的小球,编号为

至

。
你还有

个容器,你希望把这些小球放到容器里,规则如下:
1.可以有小球不被放到容器里,但是编号为

的红球和编号为

的蓝球必须同时被放或者不放(可以理解成他们俩的状态必须相同)。
2.每个容器的放入的小球数目不得超过容量上限,第

个容器的上限为

。如果容器

中放入了

个小球,则你必须支付

的代价。
3.有

条规定,第

条规定形如“编号为

的球可以放入编号为

的容器里”,你只能按照规定放入小球。也就是说,如果球

放入了容器

,则必有一条规定描述了编号为

的球可以放入编号为

的容器中。
4.每个容器剩余的容量必须为偶数。
你希望在放入尽量多的小球情况下,支付的代价尽量少。输出最多能放入的小球数和在这个情况下最小的代价。
输入描述:
第一行
。
接下来一行
个整数
,代表第
个容器的上限。
接下来一行
个整数
,代表第
个容器每放入一个小球所需的代价。
接下来
行,每行两个整数
,代表一条规定。

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