#P5020. 口袋
口袋
Description
克拉拉同学平时就喜欢一些奇奇怪怪的东西,她有一个神奇的口袋,她能从口袋里拿出各种神奇的东西。某一天她发现口袋里出现了一些像数字形状的物品,我们用0到9这十种数字来表示不同的物品。
克拉拉有一个非常喜欢的数字x,现在她想用口袋里的给出的这些数字形状的物品来组成尽可能多的x,每个物品只能用一次。
组装过程中克拉拉发现这些像数字形状的物品中,2和5倒过来特别像,6和9倒过来也特别像,所以她可以用2和5互相代替,也能用6和9互相代替(其他的不能代替)。
举个例子,克拉拉喜欢数字42,现在口袋里能拿出来顺序为23454这五种物品,因此她可以用第一个物品2 和第三个物品4组成42(可以组成24,但不是需要的),还能用第四个物品5和第五个物品4组成42(其中5倒过来可以当作2)。
现在想要知道这些物品最多能组成几个克拉拉最喜欢的数字。
请你编程帮克拉拉解决这个问题,并输出能用物品组成x的最多的个数。
Input Format
第一行为一个正整数x表示克拉拉最喜欢的数字。
第二行为一个字符串,字符串每一位为0到9的某个字符,字符串长度为物品的个数(数字之间没有其他符号)。
数据范围和限制
对于30%的数据,1≤x≤100,字符串长度不超过20。
对于100%的数据,1≤x≤100000,字符串长度不超过200000。
其中10%的数据保证x<10,另外10%的数据保证x中不出现2、5、6、9。
对于60%的数据,1≤x≤1000,字符串长度不超过100;
Output Format
一个整数:能用物品组成xx的最多的个数
sample1
输入数据 1
42
23454
输出数据 1
2
sample2
输入数据 2
169
21891919
输出数据 2
1
sample3
输入数据 3
801
12345678111
输出数据 3
0
42
234542
Hint
【样例 1 说明】(2,4)和(5,4)拼成42,其中5可以倒过来当作2。可以证明不能再多拼成一个42了。
【样例 2 说明】
2-“1”-8-“9”-1-“9”-1-9,可以用(1,9,9)拼成169,第一个9可以倒过来当6使用。因为每个数字只能用一次,因此最多只能拼成一个169。