一条长走廊上排列着 盏灯,灯的编号从 到 。每盏灯的状态为关闭或开启。存在一种特殊机制可改变灯的状态。在一次操作中,我们可以执行以下三种操作之一:
- 选择满足 的整数 和 ,并将灯 全部关闭。
- 选择满足 的整数 和 ,并将灯 全部开启。
- 选择满足 的整数 和 ,并将灯 的状态全部翻转(关闭变开启,开启变关闭)。
灯的当前状态由长度为 的字符串 表示。若灯 ()处于关闭状态,则字符串 的第 个字符为 ;若处于开启状态,则为 。我们希望将灯的状态变为由长度为 的字符串 所表示的目标状态,且操作次数尽可能少。若希望灯 ()处于关闭状态,则字符串 的第 个字符为 ;若希望其处于开启状态,则为 。
请编写一个程序,输入灯的数量、当前状态和目标状态,计算并输出达到目标状态所需的最少操作次数。