#ATarc172f. [ARC172F] Walking

[ARC172F] Walking

题目描述

问题描述

在 AtCoder 王国中有 2×N2\times N 个交叉口,每个交叉口编号从 112×N2\times N。此外,在 AtCoder 王国中有以下 33 种单向道路:

  • 类型 A: 对于 2iN2 \leq i \leq N,从交叉口 2i32i-3 到交叉口 2i12i-1 的道路
  • 类型 B: 对于 2iN2 \leq i \leq N,从交叉口 2i22i-2 到交叉口 2i2i 的道路
  • 类型 C: 对于 1iN1 \leq i \leq N,连接交叉口 2i12i-1 和交叉口 2i2i 的方向为 sis_i 的道路

这里,sis_iXY,其中 X 表示从交叉口 2i12i-1 到交叉口 2i2i 的方向,而 Y 表示从交叉口 2i2i 到交叉口 2i12i-1 的方向。

高桥君希望通过进行步行几次,对于每个 1iN1 \leq i \leq N,使连接交叉口 2i12i-1 和交叉口 2i2i 的类型 C 道路的方向为 tit_i

步行操作 从任意交叉口出发,重复以下操作 00 次或多次:

  • 如果可以走上类型 C 的道路,则沿着该道路走到下一个交叉口。
  • 如果无法走上类型 C 的道路,但可以走上类型 A 或 B 的道路,则沿着该道路走到下一个交叉口。

然后,将经过的所有类型 C 的道路的方向反转。

请计算达到目的所需的最少步行次数,并给出达到目的的最少步行次数的方法。在此问题的约束条件下,可以证明可以有限次步行达到目的地。

输入格式

以以下形式输入数据:

NN

s1 s2  sNs_1\ s_2\ \cdots\ s_N

t1 t2  tNt_1\ t_2\ \cdots\ t_N

输出格式

请以以下形式输出。假设步行次数为 XX。此外,第 ii 次步行(1iX1 \leq i \leq X)从交叉口 aia_i 出发,最终在交叉口 bib_i 终止。

XX

a1a_1 b1b_1

a2a_2 b2b_2

\vdots

aXa_X bXb_X

样例 1

输入

5
XYXYX
XXYXX

输出

1
2 7

样例 2

输入

5
XXYYX
XXYYX

输出

0

样例 3

输入

5
XXXXX
YYYYY

输出

5
1 2
3 4
5 6
7 8
9 10

样例 4

输入

20
XXXYXYYXXXYXXXXYYXXY
XXYXYYXXYXXYXYXYXYXY

输出

5
14 18
29 38
14 26
5 10
27 35

样例 5

输入

20
YXYXYXYYYXYYXYYXYXXX
XXXXXYXYYYXYYXXYYYXY

输出

5
29 36
10 38
2 3
4 7
28 40

说明/提示

  • NN 是满足 1N40001 \leq N \leq 4000 的整数
  • s1,s2,,sNs_1, s_2, \dots, s_NXY
  • t1,t2,,tNt_1, t_2, \dots, t_NXY

【样例解释 1】

在这个样例中,高桥君将按照以下步骤行走:

  • 从交叉口 2 出发。
  • 由于从交叉口 2 没有类型 C 道路可供前进,沿着类型 B 道路走到交叉口 4。
  • 由于从交叉口 4 有类型 C 道路可供前进,沿着类型 C 道路走到交叉口 3。
  • 由于从交叉口 3 没有类型 C 道路可供前进,沿着类型 A 道路走到交叉口5。
  • 由于从交叉口 5 有类型 C 道路可供前进,沿着类型 C 道路走到交叉口 6。
  • 由于从交叉口 6 没有类型 C 道路可供前进,沿着类型 B 道路走到交叉口 8。
  • 由于从交叉口 8 有类型 C 道路可供前进,沿着类型 C 道路走到交叉口 7。
  • 在交叉口 7 结束。

这次步行经过了以下三条类型 C 道路:

  • 连接交叉口 3 和交叉口 4 的道路。
  • 连接交叉口 5 和交叉口 6 的道路。
  • 连接交叉口 7 和交叉口 8 的道路。

这些道路的方向被反转,因此连接交叉口 2i12i−1 和交叉口 2i2i(其中 i=1,2,3,4,5i=1,2,3,4,5)的道路的方向现在分别为 XXYXX,到达了目的地。