#P1716. 团建
团建
题目描述
薯条哥是公司里的一名领导,他负责组织今年的团建活动。这个团建活动很重要,因为公司里的员工们都非常忙碌,很少有机会聚在一起,所以这次活动是大家期待已久的。
为了让所有人都能够参加到自己想要参加的活动,薯条哥收集了所有人的意愿,并准备了三个不同的活动:、 和 ,每个活动都有不同的人数上限和参加费用。
为了让所有人都能参加到自己想要参加的活动,薯条哥收集了所有人的投票结果。现在他希望在满足所有人的意愿的前提下,尽可能地降低团建的总费用。
但是,薯条哥面临着一个难题,因为人们的意愿各不相同,他需要考虑每个人的选择,才能做出最好的决策。
因此,他找到了你,希望你能够帮助他找到一个最佳的团建方案,以让大家都能开心参与,并且尽可能地降低费用。
输入描述
第一行输入一个整数 ,代表准备参加活动的人数。
接下来 行,每行一个由 "ABC"
组成的字符串,其中第 行表示第 个人投票了哪几个活动。(输入保证字符串非空,且由大写的 "ABC"
字符组成)
最后 行,每行两个整数,分别表示三个活动的人数上限以及每个人参加的费用。(人数上限以及参与活动的费用均为不超过 的正整数)
输出描述
输出共 行
如果能满足所有人的要求,第一行输出 "YES"
,第二行输出最少的总费用。
如果不能满足所有人的要求,第一行输出 "NO"
,第二行输出最多能满足多少人。
样例1
输入
5
A
B
C
AB
ABC
2 1
2 2
2 3
输出
YES
9
样例解释
可以满足所有人的要求,其中一种费用最少的方案:
总共需要费用:
样例2
输入
5
A
B
C
AB
AB
1 1
2 2
3 3
输出
NO
4
样例解释
无法满足所有人的需求,其中一种满足最多人的方案:
共 人