“啤酒罐游戏”(Beer Can Game)由一名玩家进行,其目标是通过最少的操作次数,将给定的啤酒罐和木制代币排列修改为满足特定条件的排列。
啤酒罐行是一排直线排列的物体,每个物体要么是一个啤酒罐,要么是一个木制代币。不同的代币可能有不同的数值,代币上印有其数值。每一行的起点和终点都有明确标记。
游戏管理员为玩家准备了两条平行的啤酒罐行。通常,这些行位于距离游戏管理员一定距离的地方。这种配置对于监控游戏进度至关重要。准备好的啤酒罐行中出现的所有啤酒罐品牌都是可用的。可能还有一些额外的品牌可用,但它们并未出现在准备好的啤酒罐行中。所有品牌都有无限数量的罐子。所有品牌的罐子都由游戏管理员监管。
玩家从游戏管理员的位置开始游戏。从那里,玩家前往准备好的啤酒罐行,并开始逐一执行游戏操作。
玩家可以执行三种可能的操作:插入罐子、展开代币、移除罐子。
- 插入罐子:玩家前往游戏管理员处,索要任意可用品牌的啤酒罐并领取,将罐子带回啤酒罐行,并将其插入到任意行的任意位置,或者放在任意行的开头或结尾。
- 展开代币:玩家从任意啤酒罐行中取走一个代币,并将其带给游戏管理员,游戏管理员会将该代币兑换成若干啤酒罐。罐子的数量等于代币上印的数值。玩家可以选择任意品牌的组合。接下来,玩家将这些罐子带回移除代币的那一行,并以任意顺序将它们放入原先代币所在的位置。
- 移除罐子:玩家从任意啤酒罐行中取出任意一个罐子,将其带给游戏管理员,并扔进其附近的专用垃圾桶中。然后玩家立即返回啤酒罐行。
玩家必须在整个游戏过程中保持每一行啤酒罐整齐地排列成直线,以避免对行中物体的顺序产生任何不确定性。
游戏的目标是获得两条完全相同的啤酒罐行。如果两条行仅包含啤酒罐,且两行中罐子的数量相同,并且对于 $1$ 到行长度范围内的所有 $k$ 值,一行中第 $k$ 个罐子的品牌与另一行中第 $k$ 个罐子的品牌相同,则认为这两行是相同的。
求玩家完成“啤酒罐游戏”所需的最少操作次数。
输入格式
输入包含两行,代表两条初始的啤酒罐行。每行仅包含小写字母(a – z)和十进制数字 0 – 9。每个字符代表一个啤酒罐品牌,不同的字符代表不同的品牌。游戏中可用的每个品牌都由一个小写字母表示,该字符可能出现在输入行中,也可能不出现。每个数字代表一个代币,数字的值等于代币上印的数值。任何输入行可能仅包含小写字母或仅包含十进制数字。
第一行输入长度至少为 1,最多为 10 000 个字符。第二行输入长度至少为 1,最多为 1 000 个字符。任一输入行中的数字不超过 100 个。
输出格式
输出一个整数,表示玩家为获得两条相同的罐子行所需执行的最少操作次数。
样例
样例输入 1
beer 4
样例输出 1
1
样例输入 2
beer5ing 4drinking
样例输出 2
2