#P1716. 团建

团建

题目描述

薯条哥是公司里的一名领导,他负责组织今年的团建活动。这个团建活动很重要,因为公司里的员工们都非常忙碌,很少有机会聚在一起,所以这次活动是大家期待已久的。

为了让所有人都能够参加到自己想要参加的活动,薯条哥收集了所有人的意愿,并准备了三个不同的活动:AABBCC,每个活动都有不同的人数上限和参加费用。

为了让所有人都能参加到自己想要参加的活动,薯条哥收集了所有人的投票结果。现在他希望在满足所有人的意愿的前提下,尽可能地降低团建的总费用。

但是,薯条哥面临着一个难题,因为人们的意愿各不相同,他需要考虑每个人的选择,才能做出最好的决策。

因此,他找到了你,希望你能够帮助他找到一个最佳的团建方案,以让大家都能开心参与,并且尽可能地降低费用。

输入描述

第一行输入一个整数 N(1N100)N(1\le N\le 100) ,代表准备参加活动的人数。

接下来 NN 行,每行一个由 "ABC" 组成的字符串,其中第 ii 行表示第 ii 个人投票了哪几个活动。(输入保证字符串非空,且由大写的 "ABC" 字符组成)

最后 33 行,每行两个整数,分别表示三个活动的人数上限以及每个人参加的费用。(人数上限以及参与活动的费用均为不超过 100100 的正整数)

输出描述

输出共 22

如果能满足所有人的要求,第一行输出 "YES" ,第二行输出最少的总费用。

如果不能满足所有人的要求,第一行输出 "NO" ,第二行输出最多能满足多少人。

样例1

输入

5
A
B
C
AB
ABC
2 1
2 2
2 3

输出

YES
9

样例解释

可以满足所有人的要求,其中一种费用最少的方案:

A[1,4]A:[1,4]

B[2,5]B:[2,5]

C[3]C:[3]

总共需要费用:1×2+2×2+3×1=91\times 2+2\times 2+3\times 1=9

样例2

输入

5
A
B
C
AB
AB
1 1
2 2
3 3

输出

NO
4

样例解释

无法满足所有人的需求,其中一种满足最多人的方案: A[1]A:[1]

B[2,4]B:[2,4]

C[3]C:[3]

44