长廊上有一排 $N$ 盏灯,编号为 $1$ 到 $N$。每盏灯的状态要么是关,要么是开。有一种特殊的机制可以改变灯的状态。在一次操作中,我们可以执行以下操作之一:
- 选择整数 $p$ 和 $q$(满足 $1 \le p \le q \le N$),将灯 $p, p + 1, \dots, q$ 全部关闭。
- 选择整数 $p$ 和 $q$(满足 $1 \le p \le q \le N$),将灯 $p, p + 1, \dots, q$ 全部开启。
- 选择整数 $p$ 和 $q$(满足 $1 \le p \le q \le N$),将灯 $p, p + 1, \dots, q$ 的状态翻转(关变开,开变关)。
灯的当前状态由一个长度为 $N$ 的字符串 $A$ 表示。如果第 $i$ 盏灯($1 \le i \le N$)是关的,则 $A$ 的第 $i$ 个字符为 $0$,如果是开的,则为 $1$。我们希望通过尽可能少的操作,使灯的状态变为字符串 $B$ 所表示的状态。$B$ 的第 $i$ 个字符($1 \le i \le N$)为 $0$ 表示我们希望第 $i$ 盏灯关闭,为 $1$ 表示希望其开启。
编写一个程序,给定灯的数量、当前状态和目标状态,计算达到目标状态所需的最少操作次数。
输入格式
从标准输入读取以下数据:
$N$ $A$ $B$
输出格式
向标准输出写入一行。输出应包含达到目标状态所需的最少操作次数。
数据范围
- $1 \le N \le 1\,000\,000$。
- $A$ 和 $B$ 是长度为 $N$ 的字符串。
- $A$ 和 $B$ 中的每个字符均为 $0$ 或 $1$。
子任务
- (6 分) $N \le 18$。
- (41 分) $N \le 2\,000$。
- (4 分) $A$ 中的每个字符均为 $0$。
- (49 分) 无附加限制。
样例
样例输入 1
8 11011100 01101001
样例输出 1
4
说明
对于此样例输入,我们可以通过 4 次操作达到目标状态,例如:
- 翻转第 1, 2, 3, 4 盏灯的状态。灯的状态变为 00101100。
- 将第 2 盏灯开启。灯的状态变为 01101100。
- 翻转第 6, 7, 8 盏灯的状态。灯的状态变为 01101011。
- 将第 6, 7 盏灯关闭。灯的状态变为 01101001。
由于不可能在少于 4 次操作内达到目标状态,因此输出 4。
样例输入 2
13 1010010010100 0000111001011
样例输出 2
3
样例输入 3
18 001100010010000110 110110001000100101
样例输出 3
5