OJ现已增加邮箱找回密码功能,还没有绑定邮箱的同学们请抓紧时间,以免密码丢失无法找回


问题1347--云顶之弈

1347: 云顶之弈

时间限制: 1 Sec  内存限制: 128 MB
提交: 42  解决: 15
[提交] [状态] [讨论版] [命题人:]

题目描述

可能有不少人玩过这款游戏,不过你没玩过也没事。

下面会有对于游戏中的一些解释。

如图所示台上面有战斗区、候选区和购买区,每种英雄分为3个星级,从1~3星级依次递增。其中购买区的英雄均为1,战斗区和候选区的英雄星级可能有1~3三种星级。

31星级的该英雄=12星级的该英雄,32星级的该英雄=13星级的该英雄。

假设现在你已知战斗区和候选区的英雄种类以及其星级,并且现在你可以花费金币从牌库的五张卡中进行购买英雄,系统会自动进行合成,即同一星级的某个英雄卡片数目达到了3张会自动合成更高一级的该英雄,但当该英雄星级为3星级时即使满3张也不会进行升级即合成只对12星级英雄有效。

现在请你制定合适的购买方案使得3星的英雄数目最多。为了简化问题,本题不需要考虑购买完英雄后,候选区和战斗区人数已满。


对于合成的一个例子:



如果你购买了购买区的1星的伊莉丝,你则会合成1个3星的伊莉丝。

输入

第一行输入三个正整数,第一个数字n(n ≤ 9)表示一共有多少个英雄登场,第二个数字m(m ≤ 9)表示一共有多少个英雄在候选区,第三个数字x(x ≤ 25)表示你目前有多少金币。

接下来n行每行一个字符串S(|S| ≤ 10)和一个正整数d(d ≤ 3)表示当前英雄的星级。

再接下来m行每行一个字符串Q(|Q| ≤ 10)和一个正整数d(d ≤ 3)表示当前英雄的星级。

紧接着5行每行一个字符串T(|T| ≤ 10)和一个正整数w(w ≤ 5)表示当前英雄的价格。

数据保证不会出现战斗区和候选区英雄能进行合成但未合成的情况。可能相同的英雄在购买区的价格不同。

输出

输出三个数字分别表示,1星、2星、3星英雄的个数。优先选择3星英雄多的方案,如果某种方案下,3星的个数一样多,则优先选择2星个数最多的方案,如果2星英雄的个数也相同,则优先按照1星英雄个数多的方案来购买。

样例输入 Copy

4 1 7
a 2
a 2
b 1
c 1
b 1
a 2
a 2
a 2
b 1
b 1

样例输出 Copy

1 1 1

提示

对于样例,此时在战斗区有4个英雄,分别为2个2星的a、1个1星的b和1个1星的c。在候选区有1个1星的b,购买区有3个1星的a,和2个1星的b。此时你有7元,可以选择购买3个a,花费6元,购买1个b花费1元,共花费7元。此时你共有2个2星的a和3个1星的a,3个1星的a可以合成1个2星的a,此时3个2星的a合成了1个3星的a。另有1个1星的c,和3个1星的b,对b合成最终剩余的1星、2星、3星个数分别为1 1 1(1个3星a,1个2星b,1个1星c)。

来源/分类