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