#ATarc172f. [ARC172F] Walking
[ARC172F] Walking
题目描述
问题描述
在 AtCoder 王国中有 个交叉口,每个交叉口编号从 到 。此外,在 AtCoder 王国中有以下 种单向道路:
- 类型 A: 对于 ,从交叉口 到交叉口 的道路
- 类型 B: 对于 ,从交叉口 到交叉口 的道路
- 类型 C: 对于 ,连接交叉口 和交叉口 的方向为 的道路
这里, 是 X 或 Y,其中 X 表示从交叉口 到交叉口 的方向,而 Y 表示从交叉口 到交叉口 的方向。
高桥君希望通过进行步行几次,对于每个 ,使连接交叉口 和交叉口 的类型 C 道路的方向为 。
步行操作 从任意交叉口出发,重复以下操作 次或多次:
- 如果可以走上类型 C 的道路,则沿着该道路走到下一个交叉口。
- 如果无法走上类型 C 的道路,但可以走上类型 A 或 B 的道路,则沿着该道路走到下一个交叉口。
然后,将经过的所有类型 C 的道路的方向反转。
请计算达到目的所需的最少步行次数,并给出达到目的的最少步行次数的方法。在此问题的约束条件下,可以证明可以有限次步行达到目的地。
输入格式
以以下形式输入数据:
输出格式
请以以下形式输出。假设步行次数为 。此外,第 次步行()从交叉口 出发,最终在交叉口 终止。
样例 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
说明/提示
- 是满足 的整数
- 是
X或Y - 是
X或Y
【样例解释 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 的道路。
这些道路的方向被反转,因此连接交叉口 和交叉口 (其中 )的道路的方向现在分别为 X、X、Y、X、X,到达了目的地。