#CODEFORCESP2599. Equalize (※※)

Equalize (※※)

题目描述

给您两个长度相同的二进制字符串 aabb。您可以对字符串 aa 进行以下两种运算:

  • 交换分别位于索引 iijj 的任意两个比特(1i,jn1 \le i, j \le n),此操作的代价是 ij|i - j|,即 iijj 之间的绝对差值。
  • 选择任意索引 ii(1in1 \le i \le n),并翻转(将00改为11或将11改为00)该索引上的位。这个操作的代价是 11

求使字符串 aa 等于 bb 的最小代价。不允许修改字符串 bb

输入描述

第一行包含一个整数 nn (1n1061 \le n \le 10^6) - 字符串 aabb 的长度。

第二行和第三行分别包含字符串 aabb

字符串 aabb 的长度均为 nn,且只包含 "0 "和 "1"。

输出描述

输出使字符串 aa 等于 bb 的最小成本。

样例

3
100
001
2
4
0101
0011
1

说明

在第一个示例中,最优解之一是翻转索引 11 和索引 33,字符串 aa 变化如下:"100" \to"000" \to"001".成本为 1+1=21 + 1 = 2

另一种最优解是交换位和索引 1133 ,字符串 aa 变为 "100" \to "001" ,代价也是 13=2|1 - 3| = 2 。"001",代价也是13=2|1 - 3| = 2

在第二个例子中,最优解是交换索引2233的比特,字符串aa变为 "0101" \to"0011".成本为 23=1|2 - 3| = 1