AT_xmascon22_c Conditional Swap
题目描述
给定 $ (1,2,\ldots,N) $ 的排列 $ P=(P_1,P_2,\ldots,P_N) $ 和 $ Q=(Q_1,Q_2,\ldots,Q_N) $。请判断能否通过不超过 $ N^2 $ 次如下操作,将 $ P $ 变为 $ Q $,如果可以,请给出一种操作序列。
- 每一次可以选择一个整数 $ i $,使得下述条件至少满足一项,并交换 $ P_i $ 与 $ P_{i+1} $ 的值。
- $ 1 \leq i \leq N-2 $ 且 $ \min(P_i,P_{i+1}) < P_{i+2} < \max(P_i,P_{i+1}) $
- $ 2 \leq i \leq N-1 $ 且 $ \min(P_i,P_{i+1}) < P_{i-1} < \max(P_i,P_{i+1}) $
输入格式
输入按以下格式给出:
> $ N $ $ P_1 $ $ P_2 $ $ \cdots $ $ P_N $ $ Q_1 $ $ Q_2 $ $ \cdots $ $ Q_N $
输出格式
如果可以将 $ P $ 变为 $ Q $,按以下格式输出操作序列:
> $ k $ $ i_1 $ $ i_2 $ $ \cdots $ $ i_k $
其中 $ k $ 是操作的次数($ 0 \leq k \leq N^2 $),$ i_j $ 表示第 $ j $ 次操作选择 $ i=i_j $。
如果不能将 $ P $ 变为 $ Q $,输出 `-1`。
说明/提示
### 数据范围
- $ 2 \leq N \leq 1000 $
- $ (P_1,P_2,\ldots,P_N) $ 是 $ (1,2,\ldots,N) $ 的一个排列。
- $ (Q_1,Q_2,\ldots,Q_N) $ 是 $ (1,2,\ldots,N) $ 的一个排列。
由 ChatGPT 5 翻译