CF1017B The Bits
题目描述
Rudolf 正在去城堡的路上。在大门前,保安问了他一个问题:
已知两个长度为 $n$ 的二进制数 $a,b$。你可以任意选择 $a$ 中的两个二进制位,然后把上面的数字调换位置。问题是,有多少中不同的操作,可以生成一个与原来不同的 $a\;|\;b$?
换句话说,令 $c=a\;|\;b$,你能找到多少种操作,使得更改后的 $a$ 满足 $a'\;|\;b \ne c$?
其中 $|$ 表示“按位或”运算。如 $(01010)_2\;|\;(10011)_2=(11011)_2$。
输入格式
输入的第一行包含一个整数 $n$。其中 $2\leqslant n \leqslant 10^5$。
后两行分别描述 $a,b$。
输出格式
输出包含一个整数,表示交换的方案数。
说明/提示
In the first sample, you can swap bits that have indexes $ (1, 4) $ , $ (2, 3) $ , $ (3, 4) $ , and $ (3, 5) $ .
In the second example, you can swap bits that have indexes $ (1, 2) $ , $ (1, 3) $ , $ (2, 4) $ , $ (3, 4) $ , $ (3, 5) $ , and $ (3, 6) $ .